web-dev-qa-db-ja.com

Squidプロキシがキャッシュを正しく実行しているかどうかを知る方法

Squidサーバーに接続されたクライアントが、インターネットに直接アクセスしてデータを取得する代わりに、実際にキャッシュデータを使用しているかどうかをテストしたかったのです。 SquidサーバーからServer:Portを読み取るようにすべてのクライアントブラウザーを構成しました(これは10.42.0.1:3128です)。それでは、キャッシュまたはインターネットから情報を取得しているかどうかをどのようにして知ることができますか。

簡単な「テスト」で、多くの画像が含まれる複数のページを読み込むときに同じ速度が得られたので、私は尋ねました。訪問ごとに変わる広告ではなく、同じ画像。

キャッシュを使用しているかどうかを確認する方法はありますか?

私は次を実行しました:Sudo tail -f /var/log/squid3/access.logそして、スクロールし続けるいくつかの行を得ました:

1374553166.136    929 185.168.101.131 TCP_MISS/200 28198 GET http://www.Amazon.de/gp/offer-listing/B000NOIW62/ref=sr_1_1_olp? - DIRECT/178.236.7.219 text/html

それらはTCP_MISS/2を持ち、最後に上記の例のようにDIRECTを持ちました。これは、LAN内のすべてのコンピューターの電源を切っている間に起こりました。使用しようとしたときに、次のようにSudo tail -f /var/log/squid3/access.log | grep HITを実行しました

1374553387.488      0 10.42.0.14 TCP_IMS_HIT/304 278 GET http://g-ecx.images-Amazon.com/images/G/01/da/creatives/sn130.png - NONE/- image/png

したがって、TCP_IMS_HIT/304と表示され、最後にNONEと表示されます

では、TCP_MISS、DIRECT、TCP_IMS_HIT、およびNONEはどういう意味ですか?

キャッシュは機能していますか?

11
Luis Alvarado

ターミナルで、squidを実行しているサーバーで、コマンドを実行します

tail -f /var/log/squid3/access.log

ユーザーがウェブページにアクセスするのを見てください。多くの行が何かをクリックするたびに画面を上にスクロールする場合、プロキシサーバーを使用しています。 squidログファイルが見つからない場合は、/ etc/squidでログファイルの場所を確認してください。

上記のコマンドを終了するには、ctrl + cを押します

実際にデータをキャッシュしていて有用であるかどうかを確認するには、それがHITであると言う行があるはずです。 ログファイルの内容の完全な説明を参照するには、squid wikiを参照してください 。キャッシュHITは、個々のユーザーのWebブラウザーが既にローカルにコンテンツをキャッシュしているため、必要な頻度ではないことに注意してください。その情報がキャッシュから削除される前に複数のユーザーが同じページを要求すると、最も多くのヒットが得られます。

「このサイトをチェックしてください...」というallstaffの電子メールが出たときなど。

  • TCP_MISS/200は、要求されたドキュメントがキャッシュ内になかったが、Webサーバーから問題なくフェッチできることを意味します。最後のダイレクトは、ファイルがウェブサーバーから取得されたことを示しています。
  • TCP_IMS_HIT/304は、クライアントがファイルが変更されたかどうかを尋ね、squidがWebサーバーで日付/時刻を確認し、変更されていないことを確認したため、ローカルキャッシュからクライアントにファイルのコピーを提供しました。

はい、あなたのイカは使用されており、キャッシュとして機能しています。

15
BeowulfNode42