cloverrose's blog

Python, Machine learning, Emacs, CI/CD, Webアプリなど

Squid調査

Squidというプロキシサーバーを使ってみました。

アクセスログの設定で調べたことをまとめて置きます。

インストール方法

MacにHomebrewでインストールしました

$ brew install squid

squidのバージョンは

$ squid -v
Squid Cache: Version 3.3.11

設定ファイル

Homebrewでインストールした場合、設定ファイルは、 /usr/local/Cellar/squid/3.3.11/etc以下にあります。

基本的な設定はsquid.confで行います。

アクセスログの設定

Squidのバージョンにより設定方法が何度も変わっているようです。 v3.3では次の設定が正しいです。

access_log daemon:/usr/local/var/logs/access.log combined

access_log: アクセスログに関する設定はここに書く

daemon:Squidはv3.2からいろんな方法でログを出力できるようになりました。どの方法(どのモジュールを使って)ログを出力するのかを指定します。

昔は直接ファイルに書き込んでいて、I/Oオーバーヘッドが大きかった ファイルに出力するならより高速なdaemonモジュールがおすすめ。

stdio module to send log data directly from Squid to a disk file. This is the historic behaviour of Squid before logging modules were introduced, and remains the default used when no module is selected. It is recommended to upgrade logging to the faster daemon: module.

source: http://www.squid-cache.org/Doc/config/access_log/

/usr/local/var/logs/access.log:アクセスログの出力先を指定する。Homebrewで入れたSquidaccess_logディレクティブで何も設定しないと、ここに出力していたので同じ場所を指定。

combined:ログのフォーマットを指定する。ログのフォーマットは自分でも定義できる。標準で使えるのは、以下の5つ

  • squid: Squid独自のログ(キャッシュ情報とかに特化?)
  • common:CLF形式
  • referrer:基本的にReferrerのみ
  • useragent:基本的にUser Agentのみ
  • combined:CLF形式にreferrerとuseragentの情報を合体させたもの

参考: http://www.squid-cache.org/Doc/config/logformat/

ログ形式の設定

標準で用意されているログ形式以外に自分で定義することもできる。

http://www.squid-cache.org/Doc/config/logformat/

参考サイト