Web キャッシュ - Squid プロキシ サービス

1. イカに関する知識
 1.1 イカの概念

Squid サーバーは、頻繁にリクエストされる Web ページ、メディア ファイル、その他のコンテンツをキャッシュして、応答時間を短縮し、帯域幅の混雑を軽減します。

Squid プロキシ サーバー (Squid プロキシ サーバー) は、通常、元のファイルと一緒にネットワーク サーバーではなく、別のサーバーにインストールされます。Squid は、ネットワーク上のオブジェクトの使用状況を追跡することによって機能します。Squid は当初、仲介者として機能し、単にクライアントのリクエストをサーバーに渡し、リクエスト オブジェクトのコピーを保存しました。同じクライアントまたはクライアントの同じバッチが Squid キャッシュ (キャッシュ) 内にあるときに同じオブジェクトを要求した場合、Squid はそのオブジェクトをすぐに処理できるため、ダウンロードが高速化され、帯域幅が節約されます。
Squid は主にキャッシュの高速化とアプリケーション層のフィルタリング制御の機能を提供します。

1.2 Squid プロキシの動作メカニズム 
(1) クライアントを置き換えて Web サイトからデータを要求するため、ユーザーの実際の IP アドレスを隠すことができます。

(2) 取得した Web ページのデータ(静的 Web 要素)をキャッシュに保存してクライアントに送信することで、次回同じデータが要求された場合に迅速に応答できるようにします。

1.3 プロキシサーバーの概念と機能:

プロキシ サーバーは、クライアントとオリジナル (リソース) サーバーの間にあるサーバーで、オリジナル サーバーからコンテンツを取得するために、クライアントはプロキシ サーバーにリクエストを送信し、ターゲットのオリジナル サーバーを指定すると、プロキシ サーバーはコンテンツを転送します。元のサーバーにリクエストを送信し、コンテンツを取得してクライアントに返します。

キャッシュ プロキシは、Web、特に大規模で負荷の高い Web サイトにとって非常に重要です。キャッシュはパフォーマンス最適化の重要な手段として使用でき、バックエンド サーバーの負荷を大幅に軽減できます。通常、静的リソース、つまり、画像、CSS、JS などの更新頻度が低いリソースはキャッシュされるため、ブラウザーが更新されるたびに再リクエストする必要はなく、キャッシュから読み取られます。サーバーのトラフィックを軽減できます。

1.4 その主な機能は次のとおりです。

リソース取得: クライアントを置き換えて元のサーバーからリソースを取得します;
アクセスの高速化: プロキシ サーバーが元のサーバーに近いため、高速化に一定の役割を果たします;
キャッシュ機能: プロキシ サーバーは元のサーバーから取得したリソースを保存しますクライアントが迅速に取得し、
実際のアドレスを隠す: プロキシ サーバーがクライアントに代わって元のサーバー リソースを取得し、それによってクライアントの実際の情報を隠します。
 

最も基本的な機能: Web アクセスの速度を向上させ、クライアントの実際の IP アドレスを非表示にします。

1.5 Squid プロキシの種類 

従来のプロキシ: インターネット フォワード プロキシに適用され、プロキシ サーバーのアドレスとポートをクライアント コンピュータで指定する必要があります。

透過プロキシ: クライアントはプロキシ サーバーのアドレスとポートを指定する必要はありませんが、デフォルト ルートとファイアウォール ポリシーを通じて Web アクセスをプロキシ サーバーにリダイレクトします。

リバース プロキシ: 要求されたリソースが Squid リバース プロキシ サーバーにキャッシュされている場合、要求されたリソースはクライアントに直接返されます。それ以外の場合、リバース プロキシ サーバーはバックグラウンド WEB サーバーからリソースを要求し、要求された応答をクライアントに返します。クライアントに加えて、次のリクエスタが使用できるように応答をローカルにキャッシュします。
 

 1.6 Squid プロキシ サーバーと SNAT|DNAT の違い
データ転送の役割だけを見ると、Squid プロキシ サーバーと SNAT|DNAT を混同しやすく、両者に大きな違いはないと考えられますが、実際には 2 つです。本質的にはまだ大きく異なります

主な違い SNAT と DNAT プロキシ サーバー モード
ネットワーク層 ネットワーク層 アプリケーション層
ワークフロー LAN ユーザーは snat モードで外部ネットワークにアクセスし、同じデータ パケットを取得し、データ パケット ヘッダーのソース アドレスを変更して、データ パケットをインターネットに送信します。データ パケットのヘッダー情報を変更せず、
アプリケーション層のフィルタリング効果に基づいて、データ パケットをインターネット サーバーにプロキシします。 イントラネット ユーザーは外部ネットワーク (SNAT) に移動し、イントラネット サービスはパブリック ネットワーク (DNAT) に公開されます。 キャッシュページ、アクセスの高速化、ACL リソース アクセス 制御
プロキシ サーバーは、アプリケーション層のプロトコル (http、ftp、pop、smtp、p2p など) に従います。

リバースプロキシ:

インターネットユーザーは、リバースプロキシサーバーとしてLANサーバーSquidにアクセスし、ユーザーのリクエストを背後の実サーバーに転送します。これにより負荷分散の効果が得られると同時に、ユーザーが頻繁にアクセスするページをバッファリングしてアクセス速度を向上させます。

 2. Squid サービスのインストールと操作
Squid サービスのインストール
 #インストール環境依存パッケージ
yum -y install gcc gcc-c++ make 
 #squid インストールパッケージを解凍
tar zxvf suck-3.5.28.tar.gz -C /opt/ 
 #ソースに切り替えるcode パッケージディレクトリ、インストールパスを設定し、モジュールをインストールします
cd /opt/squid-3.5.28 
 
./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable -linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err- language="Simplify_ Chinese" \
--enable-underscore \
--disable-poll \
--enable -epoll \
--enable-gnuregex
#################### コメント ################## ##### #########
./configure --prefix=/usr/local/squid\ #      
インストールディレクトリのパスを指定します
--sysconfdir=/etc \                         
#設定ファイルのパスを指定します
--enable-arp-acl \                          
#クライアントによる IP スプーフィングの使用を防ぐための MAC アドレス制御
--enable-linux-netfilter \                 
 #カーネル フィルタリングの使用
--enable-linux- tproxy \                     
#透過モードをサポート
--enable-async-io=100 \                     
#非同期 IO、ストレージ パフォーマンスを向上させます。最初にキャッシュに書き込み、次にハードディスクに書き込みます
--enable-err- language="Simplify_ Chinese" \  
#エラー メッセージの表示言語
--enable-underscore \                       
#URL 内のアンダースコアを許可します
--disable-poll \                            
#ポーリング モードのデフォルトの使用
--enable-epoll \        
#パフォーマンスを向上させるために epoll モードを有効にします。epoll モードは IO 多重レプリケーション、非同期非ブロッキングをサポートできます
--enable-gnuregex                         
  #GNU 正規表現を使用します

 make  
-j2 && make install #2 コアを開いてコンパイルしてインストールします
 ln
-s /usr/local/squid/sbin/* /usr/local/sbin/ #  
 システムが直接認識できるようにパスを最適化しますイカコマンド
useradd -M - s /sbin/nologin イカ             
#イカユーザーを作成します。ホームディレクトリは作成せず、システムにログインできませんchown
-R イカ:squid /usr/local/squid/var/ #   
所有者とグループの場合、このディレクトリはキャッシュ ファイルの保存に使用されます

  2.2 Squid 設定ファイルを変更します
vim /etc/squid.conf
 
 
 --line 56 --insert
 http_access apply all    
#http_access をすべて拒否する前に、すべてのクライアントがプロキシ サービスの使用を許可され、制御ルールが
 http_access をすべて拒否する
 http_portと一致します。 3128           
#プロキシ サービスがリッスンするアドレスとポートを指定するために使用されます (デフォルトのポート番号は 3128)
 --61 行
 --insertcache_Effective_user suck      
#追加、プログラム ユーザーを指定し、初期化とアカウントの設定に使用されますランタイム キャッシュ、それ以外の場合は、
 cache_Effective_group を開始します suck    
 #追加、アカウントの基本グループを指定します
 coredump_dir /usr/local/squid/var/cache/squid    
 #キャッシュ ファイル ディレクトリを指定します。デフォルトでこの行が存在します。通常は変更しないでください。
 

2.3 Squidの動作制御 
 #設定ファイルの構文が正しいか確認します
quid -k parse  #Squid
 を起動squid -z #-zオプションキャッシュ ディレクトリの初期化に使用されます suck #squid サービスの開始  netstat -anpt | grep "squid" #起動が成功したかどうかを確認します





2.4 システムサービス管理用の Squid サービススクリプトの作成 
 vim /etc/init.d/squid
 #!/bin/bash
 #chkconfig: 2345 90 25
 PID
 ="/usr/local/squid/var/run/squid.pid"
 CONF ="/etc/squid.conf"
 CMD="/usr/local/squid/sbin/squid"
 case
 "$1" in
    start)
      netstat -natp | grep suck &> /dev/null
      if [ $? -eq 0 ]
      then
        echo "squid が実行中です"
      else
        echo "squid を開始しています..."
        $CMD
      fi
    ;;
    stop)
      $CMD -k kill &> /dev/null
      rm -rf $PID &> /dev/null     
 #kill プロセスを強制終了するコマンドです。PID ファイルは削除されません。 PID ファイルを手動で削除しないと、次回の起動時に問題が発生します
    ;;
    status)
      [ -f $PID ] &> /dev/null
         if [ $? -eq 0 ]
           then
             netstat -natp | grepquid
           else
             echo "squid が実行されていません"
         fi
    ;;
    restart)
       $0 stop &> /dev/null
       echo "Squid をシャットダウンしています..."
       $0 start &> /dev/null
       echo "Squid を開始しています..."
    ;;
    reload)
       $CMD -k reconfigure
    ;;
    check)
       $CMD -k parse
    ;;
    *)
       echo "用法:$0 {start|stop|status|reload|check|restart}"
    ;;  esac
 

 #2345 は、デフォルトの自動開始実行レベルです (そうである場合)。これは、どの実行レベルも自動的に開始されないことを意味します。90 は開始優先順位、25 は停止優先順位、優先順位の範囲は 0 ~ 100 で、数値が大きい
ほど、優先度が低くなります。  chmod
  +x /etc/init.d/squid #スクリプトに実行権限を追加chkconfig --addquid #システムサービス管理を追加chkconfig --listquid #どの実行レベルが自動的に開始されるかを確認




 

3.従来のプロキシ サーバー (フォワード プロキシ) を構築する
 実験設計実験
要件
クライアントを置き換えて Web サーバー上のリソースをキャッシュできる Squid サービスを構築します (このモードでは、クライアントがプロキシ サーバーを手動で追加する必要があります)

 実験的なコンポーネントの展開
Squid プロキシ サーバー: 192.168.50.26/24

ウェブサーバー: 192.168.50.25/24

クライアント: 192.168.50.24/24

1 プロキシ サーバーの設定
vim /etc/squid.conf
......
http_access allowed all
http_accessdeny all
http_port 3128
cache_効果_user イカ
キャッシュ_効果的なグループ イカ
 --63 行 -- 挿入
キャッシュ_mem 1024 MB               
 #キャッシュ機能で使用するメモリ空間を指定します。頻繁にアクセスするWEBオブジェクトを保存しておくと便利です
容量は4の倍数で単位はMBが望ましいです 物理メモリの1/4に設定することを推奨します
Reply_body_max_size 100 MB          
 #ユーザーが使用できる最大ファイルサイズダウンロード時に、バイト単位でダウンロードが許可されます。 Web オブジェクトが指定されたサイズを超えると、
ブラウザのエラー ページに「リクエストまたはアクセスが大きすぎます」というエラー メッセージが表示されます。デフォルト設定の 0 は制限なしを意味します。
制限がない場合は、この行をコメントアウトする必要があります。
Maximum_object_size 100 MB          
 #キャッシュ スペースに保存できるオブジェクトの最大サイズ (KB 単位)。サイズ制限を超えるファイルはキャッシュされず、
ユーザーに直接転送されます。大きなファイルをあまり使用しない場合は、Web サーバーが直接応答して、キャッシュ サーバー サービスが占有するスペースを削減します
 squid
restart #Squid
 サービスを
 #運用環境のファイアウォール ルールを変更することも必要です
iptables -F
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT   
 #tcp プロトコルのポート 3128 のトラフィック
 の通過を

 2. nginx
systemctl stop firewalld
setenforce 0
スクリプトを Web サーバーにインストールして、nginx
echo "<h1> this is web1 side</h1>" >
 /usr/local/nginx/html/index.htmlコンパイルしてインストールします。
 

3. クライアントのプロキシ設定、Web サーバーにアクセスして
 ブラウザを開き、ツール --> インターネット オプション --> 接続 --> LAN 設定 --> プロキシ サーバーを有効にします
 (アドレス: Squid サーバー IP アドレス、ポート: 3128) ) 

 4. Squid アクセス ログの新しいレコードのキャッシュ ヒット ステータスを確認します
tail -f /usr/local/squid/var/logs/access.log
TCP_MISS/200 #キャッシュ ミスを示します       
TCP_MEM_HIT/200 #キャッシュ
 ヒットを

 5. Web アクセス ログの新しいレコードを表示する

tail -f /var/log/httpd/access_log
 ブラウザに Web サーバーの IP アドレスを入力してアクセスすると、Web サーバーのアクセスログが表示されます。クライアントに対してプロキシサーバーがアクセスしていることがわかります。このアドレスは実際のクライアント アドレスではなく、プロキシ サーバーのアドレスです。

 4. 透過的プロキシ
の実験要件 
透過的プロキシの要件:

プロキシ サーバーがゲートウェイ サーバーである必要があります。
ゲートウェイ サーバーには少なくとも 2 枚のネットワーク カードがあり、ルーティングおよび転送機能が有効になっています。
ファイアウォール iptables/firewalld はリダイレクト ルールを設定します。
ユーザーが手動でプロキシサーバーを設定する必要はなく、ユーザーが初回と同じリソースに2回目アクセスする際には、プロキシサーバーによってリソースサービスが提供されます。 

実験的コンポーネントの 
 Squidプロキシサーバー: ens33: 192.168.50.25 ens35: 12.0.0.254

ウェブサーバー: 12.0.0.12/24

クライアント: 192.168.50.24

3 台のマシンのネットワークをセットアップするにはどうすればよいですか?

イカホスト:

ネットワーク カード (nat モード) を追加し、ifconfig を通じて ens35 であることを確認します。

ens33 を変更してゲートウェイと DNS をコメントアウトします。

ens35 を変更します。IP を 12.0.0.12 に変更し、ゲートウェイと DNS をコメントアウトします。

クライアントコンピュータ

ens33を変更します。ゲートウェイはsquid ens33ネットワークカードアドレス192.168.50.25です。NDSをコメントアウトします。

ウェブサーバー

ens33を変更します。ゲートウェイはsquid ens35ネットワークカードアドレス12.0.0.12です。NDSをコメントアウトします。

(1) suqid サーバの設定
vim /etc/squid.conf # 設定ファイルの編集
 ……
 http_access allowed all
 http_accessdeny all
 # -- 60 行 -- イントラネットサービスを提供する IP アドレスの修正と追加、サポート透過 プロキシ オプション 透過
 http_port 192.168.73.110:3128 透過  
 #接続されたクライアント ネットワーク セグメントのネットワーク カード アドレス、つまり内部ネットワーク カード アドレスを入力します。独自のイントラネット ネットワーク カードのアドレスを監視し、透過プロキシ オプションをサポートします。 transparent
 systemctl
restartquid #Squid サービスを再起動します
 #
 ルーティングと転送を開いて、このマシン内のさまざまなネットワーク セグメントのアドレス転送を実現します
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p  #ファイアウォール ルール
 を変更しiptables -F iptables -t nat -F  #http プロトコルの転送用。ポート 80 は、プロキシ サーバーによって要求されたポート 3128 にリダイレクトされます。iptables -t nat -A PREROUTING -i ens33 -s 192.168.73.0/24 -p tcp --dport 80 -j REDIRECT --to 3128





 #https プロトコルの転送用。ポート 443 は、プロキシ サーバーによって要求されたポート 3128 にリダイレクトされます。
 iptables -t nat -A PREROUTING -i ens33 -s 192.168.73.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
 #Accept 3128 of TCP プロトコル ポート受信データ
iptables -A INPUT -p tcp --dport 3128 -j  
 ACCEPT
 

(2) Webサーバーの構成


systemctl stop firewalld
setenforce 0
yum install -y httpd
systemctl start httpd
echo "これはテストです" >
 /var/www/html/index.html

(3) クライアント設定、ゲートウェイ アドレスを変更します。ブラウザはプロキシ
 
 ゲートウェイ アドレスを使用せず、プロキシ サーバーのイントラネット ネットワーク カード アドレスに変更します: 192.168.73.110  クライアントのブラウザの前に設定されているプロキシ サーバー機能を
 閉じた  #Squid アクセス ログの新しいレコード  を表示します    tail -f /usr/local/squid/var/logs/access.log  #プロキシ サーバーを示す Web アクセス ログの新しいレコードを表示しますクライアントの代わりに外部ネットワーク ポートがtail -f /var/log/httpd/access_log にアクセスしています。







 


 5. ACL アクセス制御
設定ファイル suck.conf では、次の 2 つの手順を通じて ACL アクセス制御が実装されます。

(1) acl 構成アイテムを使用して、制御する必要がある条件を定義します。

(2) http_access 設定項目を使用して、定義されたリストへのアクセスを「許可」または「拒否」を制御します。

アクセス リストの形式を定義します。 

 acl list-name list-type list-content...
実験的


 まず、両方のクライアントが Squid のフォワード プロキシ
5.1 設定 アプリケーションを設定する必要があります
。 1. 設定ファイルを編集し、制御アクセス リストを定義します。
vim /etc/squid.conf
 ......
 acl localhost src 192.168.73.112/32             
 # Client送信元アドレスは 192.168.73.112
 acl MYLAN src 192.168.73.0/24 12.0.0.0/24 #クライアント    
ネットワーク セグメント
 acl destinationhost dst 12.0.0.12/32 #       
 宛先アドレスは 12.0.0.12
 acl MC20 maxconn 20                           
  #最大同時接続数 20
 acl PORT port 21                               
 #ターゲット ポート 21
 acl DMBLOCK dstdomain .qq.com                  
 #ターゲット ドメイン、ドメイン内のすべてのサイトに一致
 acl BURL url_regex -i ^rtsp:// ^emule://   
 #rtsp://、emule:// で始まりますターゲット URL アドレス。-i は大文字と小文字を無視することを意味します。正規表現と一致する
 acl PURL urlpath_regex -i .mp3$ .mp4$ .rmvb$ #     
.mp3、.mp4、.rmvb で終わるターゲット URL パス
 acl WORKTIME time MTWHF 08:30-17:30             
 #Time is Monday to Friday 8:30 ~17 :30、「MTWHF」は月曜日から金曜日までの英語のイニシャルです
 http_access
 拒否 (または許可) destinationhost  
#注意、拒否リストの場合は、 http_accessallow all  の前に    
 

 
 
 


 
 
 

 5.2 ACL アクセス制御の適用
5.2.1 適用 1
 1. 設定ファイルの編集、制御アクセスリストの定義
 vim /etc/squid.conf
 ......
  25 acl CONNECT メソッド CONNECT

  #リストの名前を myhost として定義します。送信元アドレスは 192.168.73.112 です。26 から開始する必要があります。そうでない場合は効果がありません。 26 acl myhost src 192.168.50.20/32 27 28
  http_accessdeny
  myhost
  #アクセスする myhost リスト
  #注意、拒否 リストは http_access の前に配置する必要があります。 すべてを許可してくださいイカ サービスを  再
 起動します systemctl  イカ  




 テスト効果

 他のアドレスからのアクセス:

5.2.2 アプリケーション 2

オブジェクトリスト管理を開始する


#オブジェクトリスト管理の開始
 mkdir /etc/squid
 vim /etc/squid/dest.list #アドレス管理リストの書き込み
 192.168.50.21
 

#設定ファイルの編集
 vim /etc/squid.conf        
 ......
 acl destinationhost dst "/etc/squid/dest.list" #指定したファイル内のリストの内容を呼び出します
 ......
 http_accessdeny(またはallow) ) 宛先ホスト

 #注意: 拒否リストの場合は、 http_accessallow all の前に置く必要があります。
 

その結果、dest.list テーブル内のすべてのアドレスがアクセスを拒否され、構成ファイルに対する操作が削減される可能性があります。

アクセステスト:

 6. リバース プロキシ
6.1 リバース プロキシの動作メカニズム 要求さ 
 
れたリソースが Squid リバース プロキシ サーバーにキャッシュされている場合、要求されたリソースはクライアントに直接返されます。そうでない場合、リバース プロキシ サーバーはバックグラウンド Web サーバーからリソースを要求します。次に、リクエストに対する応答をクライアントに返し、次のリクエスタが使用できるようにその応答をローカルにキャッシュします。

静的コンテンツ/キャッシュ可能なコンテンツ (キャッシュに書き込まれる場合) は、キャッシュ サーバーによって提供されます。動的コンテンツは、要求のためにプロキシ サーバーによって Web サーバーに転送されます。


動作メカニズム:

Web ページ オブジェクトをキャッシュして、繰り返しのリクエストを減らします。
インターネット要求はローテーションでトレーニングされるか、重みに応じてイントラネット Web サーバーに割り当てられます。
ユーザー要求をプロキシして、ユーザーが Web サーバーに直接アクセスできないようにし、セキュリティを向上させます。

6.2 Squid リバースプロキシサーバーの構築 
Squid サーバー: 192.168.50.26/24 

web1サーバー: 192.168.50.22/24

web2サーバー: 192.168.50.23/24

クライアント: 192.168.50.20/24

 vim /etc/squid.conf
 ......
 #--60 行--変更し、次の行を挿入します
 http_port 192.168.73.110:80 accel vhost vport
 cache_peer 192.168.73.111parent 80 0 no-queryoriginserverround-robin max_conn =30weight=1name=web1cache_peer192.168.73.112parent800no
 -queryoriginserverround-robinmax_conn=30weight=1name=web2cache_peer_domainweb1web2www.yang.com #
 www.yang.com
 へのリクエストを表します。 Squid は 192.168.73.111 と 192.168.73.112 のポート 80 にリクエストを送信します
 ----------------
 点線はコメントです ----------- -------------------------------------------------- -- ------------------------
 http_port 80 accel vhost vport 
 ##Squid は Web サーバーのキャッシュからリバース プロキシ アクセラレーション モードに変更されました。このとき、Squid はポート 80 でリクエストをリッスンし、同時に Web サーバーのリクエスト ポート (vhost vport) にバインドします。このとき、Squid がリクエストされ、Squid は使用されません。リクエストを転送する代わりに、キャッシュからデータを直接フェッチするか、バインドされたポートからデータを直接リクエストします。
 accel: リバース プロキシ アクセラレーション モード。
 vhost : プロキシ ノードを表すドメイン名またはホスト名をサポートします。
 vport : プロキシ ノードを表す IP とポートをサポートします。
 parent
 : 親ノード、上下関係、非水平関係を表します。
 80 : 内部 Web サーバーのプロキシ ポート 80。
 0: icp (電気通信事業者) なし。squid サーバーが 1 つだけであることを意味します。
 no-query : クエリ操作は実行されず、データが直接取得されます。
 originserver : オリジンサーバーを指定します。
 ラウンドロビン: Squid がポーリングによって親ノードの 1 つにリクエストを分散することを指定します。
 max_conn : 最大接続数を指定します。
 Weight : 重みを指定します。
 name : エイリアスを設定します。
 -------------------------------------------------- -------------------------------------------------- ------ #iptables -F  の前に、トランスペアレント モードで設定された iptables ルール  を空にします
 



iptables -t nat -Fnetstat  -natp
   | grep :80 #ポート 80 が占有されているかどうかを確認し、占有されている場合は httpd systemctl stop httpd を閉じる必要があります #httpdサービスと Squid リバース プロキシ構成によってポート 80 が使用されないようにする リスニング ポートの競合  systemctlイカの再起動 #イカのサービスを再起動



http_port 80 accel vhost vport

#squid は Web サーバーのキャッシュからリバース プロキシ アクセラレーション モードに変更されました。このとき、squid はポート 80 でリクエストをリッスンし、同時に Web サーバーのリクエスト ポート (vhost vport) にバインドします。今回、リクエストはsquidに到着し、squidはRequestedを転送する必要はありませんが、キャッシュからデータを直接取得するか、バインドされたポートからデータを直接リクエストします。
accel: リバース プロキシ アクセラレーション モード
vhost: プロキシ ノードを表すドメイン名またはホスト名をサポート
vport: プロキシ ノードを表す IP およびポートをサポート

parent: 親ノード、上位/下位関係、非レベル関係を表します。
80: プロキシ内部 Web サーバーのポート 80
0: icp (通信事業者) を使用せず、Squid サーバーが 1 つだけであることを意味します
no-query: クエリ操作なし、直接取得データ
オリジンサーバー: ソースサーバーを指定します
。 ラウンドロビン: ポーリングを通じて親ノードの 1 つにリクエストを分散するために、squid を指定します。
max_conn: 最大接続数を指定します
。 Weight: ウェイト
名を指定します。 エイリアスを設定します。

(2) Webサーバ2台の構成
 systemctl stop firewalld
 setenforce 0
 yum install -y httpd
 systemctl start httpd
 #
 web1:
 echo "this is test1" > /var/www/html/index.html
 #web2:
 echo "this is test2" > /var/www/html/index.html
 echo "この Web2 テスト" > /var/www/html/test.html
 
 

(3) クライアントのドメイン名マッピング構成。アクセス検証 
Windows システムの場合は、C:\Windows\System32\drivers\etc\hosts ファイル
 192.168.73.110 www.yang.com
 Linux
 システムを変更し、/etc/ hosts ファイルにマッピング関係を追加します。
 echo "192.168.73.110 www.yang.com" >>/etc/hosts #squid サーバー アドレス
 ブラウザが
 プロキシ アクセスを開けません 
 http://www.yang.com
 http://www.yang .com/テスト.html

イカログ解析
#画像処理ソフトパッケージのインストール

yum install -y pcre-devel gd gd-devel

mkdir /usr/local/sarg
tar zxvf sarg-2.3.7.ta​​r.gz -C /opt/

cd /opt/sarg-2.3.7
./configure --prefix=/usr/local/sarg \
--sysconfdir=/etc/sarg \ #設定ファイルのディレクトリ、デフォルトは /usr/local/etc
--enable- extraprotection #追加のセキュリティ保護
make && make install

構成ファイル
vim /etc/sarg/sarg.confを変更します。

--7 行--コメントを解除
access_log /usr/local/squid/var/logs/access.log #アクセス ログ ファイルを指定します--25 行--タイトル "Squid ユーザー アクセス レポート" のコメント
を解除#Web ページのタイトル--120 行 - -コメントを解除、output_dir /var/www/html/sarg を変更 #レポート出力ディレクトリ--178 行--コメントを解除user_ip no #ユーザー名表示を使用--184 行--コメントを解除、topuser_sort_field を変更、反転接続 #topsort 、指定された数接続は降順でソートされ、昇順は通常です--190 行目 --コメントを解除、user_sort_field を変更します connect reverse #ユーザー アクセス レコードの場合、接続数は降順でソートされます -- 206 行目 --コメントを解除、exclude_hostsを変更します/usr/ local/sarg/noreport #ソートサイトリストに含まれないファイルを指定--line 257--uncomment overwrite_report no #同名・日付のログを上書きするかどうか--line 289--uncomment,変更mail_utility mailq.postfix #send メールレポートコマンド --行 434 -- コメントを解除、変更
















charset UTF-8 #文字セットを指定 UTF-8
--518 行 -- コメントを解除
曜日 0-6 #上位ランキングの週期間
--525 行 -- コメントを解除
時間帯 0-23 #上位ランキングの期間
--633 行 -- コメントを解除
www_document_root /var/www/html #Web ページのルート ディレクトリを指定します

#追加はサイトファイルに含まれていないため、追加されたドメイン名はソート
タッチ/usr/local/sarg/noreportに表示されません


ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
sarg --help

#verify
yum install httpd -y
systemctl start httpd

#
sargを実行する


ブラウザで http://192.168.50.26/sarg にアクセスし、sarg レポートのページを表示します。

おすすめ

転載: blog.csdn.net/zl965230/article/details/130803497