2011-11-21
squid.conf を変更してみました
1:cache_dir ufs を変更
# DISK CACHE OPTIONS
;;
#Default:
# cache_dir ufs c:/squid/var/cache 100 16 256
cache_dir ufs c:/squid/var/cache 4000 16 256 ←4GBへ変更
キャッシュに割り当てるハードディスクの容量を指定
キャッシュに割り当てるハードディスクの容量上限を以前の2GBから4GBへ変更しました。
2:maximum_object_size を変更
# DISK CACHE OPTIONS
;;
#Default:
# maximum_object_size 4096 KB
maximum_object_size 65536 KB ←デフォルトの4MBから64MBへ変更しました。
キャッシュ最大ファイルサイズの指定
キャッシュするファイルの上限がデフォルトの4Mでは、最近のコンテンツに対応できないので、64MBへ変更しました。
どんなサイズに設定するかは、見に行くページ次第ですが、10MB以上に設定した方がよいでしょう。
なお、サイズ指定には[KB]だけでなく[MB]も使用可能です。
この記事を書くにあたって参考にしたサイト
ezjail環境にsquid(2.7.7_2)をインストールした
squid.conf 変更 (maximum_object_size)
2011-11-18
Windowsで動作するSquid(追試編)
お家にあるPCで構築したSquid proxyサーバで、チューニングを兼ねてちょっと実験をしました。
1:squidのアクセスログにQueryStringを記録する
デフォルトだと、squidのアクセスログには、query stringは記録されません。
curl "http://127.0.0.1/search?key=hoshinoemiri" -x 127.0.0.1:3128
としても
ログには
1321608270.060 10 127.0.0.1 TCP_MISS/404 1091 GET http://127.0.0.1/search? - DIRECT/127.0.0.1 text/html
となってしまいます。
デフォルトのままでもよいのですが、接続元IPとquery stringをセットで見たかったので、設定を変更してみました。
1321608270.060 10 127.0.0.1 TCP_MISS/404 1091 GET http://127.0.0.1/search?key=hoshinoemiri - DIRECT/127.0.0.1 text/html
↑こんな風になるとうれしい。
configを探してみると、専用のオプションがありました。
strip_query_terms offとすればよいのです。
# LOGFILE OPTIONS
;;
# TAG: strip_query_terms
# By default, Squid strips query terms from requested URLs before
# logging. This protects your user's privacy.
#
#Default:
# strip_query_terms on
strip_query_terms off ←「off」に変更します。
2:proxyのhttp 1.1サポートを有効にする
# NETWORK OPTIONS
;;
# Squid normally listens to port 3128
#http_port 3128
http_port 8080 http11 ←「http11」を追記します。
;;
# HTTP OPTIONS
;;
# TAG: server_http11 on|off
# This option enables the use ot HTTP/1.1 on outgoing "direct" requests.
# See also the http11 cache_peer option.
# Note: The HTTP/1.1 support is still incomplete, with an
# internal HTTP/1.0 hop. As result 1xx responses will not
# be forwarded.
#
#Default:
# server_http11 off
server_http11 on ←「on」に変更します。
以上、squidの設定メモでした。
この記事を書くにあたって参考にしたサイト
squidのアクセスログにQueryStringを記録する方法
またたびにっき:お家サーバーメモ
2011-11-16
Windowsで動作するSquid
Squidチームが想定しているSquidの動作環境は、UNIX系OS上での動作です。
しかし、ユーザーの環境によってはSolaris(R)やLinuxやFreeBSDなどよりも、Microsoft社のWindowsでSquidを動作させたい場合もあるでしょう。
残念ながら本家のSquidにはWindows用のSquidは存在しません。
そんなWindowsユーザーに朗報です。Guido Serassio(ギド・セルシオ?)氏がメンテナンスしている素晴らしいWindows版のSquidをGPLで入手することが可能です。
1:Squid-NTの入手
Windows NT4.0/2000/XP/2003/Vista/2008版のSquid(以下Squid-NTという)の入手は、上記サイト中のこちらから可能です。
2011年11月15日現在の最新版は、
squid-2.7.STABLE8-bin.zip
squid-2.7.STABLE8-bin-DELAYP.zip
squid-2.7.STABLE8-bin-SSL.zip
の3つから選べるようになっています。このうち"squid-2.7.STABLE8-bin-DELAYP.zip"はDelay Poolsの機能が組み込まれたものなので、Delay Poolsについてよく判っていない方は"squid-2.7.STABLE8-bin.zip"を選ぶとよいでしょう。
ちなみにDelay Poolsについては、私も勉強不足でよくわかりません(調べておきます)。
私は"squid-2.7.STABLE8-bin-SSL.zip"を選びましたので、以下これをもとに説明します。
2:Squid-NTの解凍
入手したバイナリファイルは、ZIP形式で圧縮されているので、WINZIP等の解凍ソフトで解凍してください。
このとき、よくわからない場合はC:\を解凍先にしてください。
もし、違うディレクトリを解凍先に選ぶ場合には、squid.confに記述されている各種のファイルやディレクトリ情報を、解凍先のディレクトリに合わせてすべて修正する必要があることに注意してください。
私は、面白半分でD:\に解凍したため、後になって原因不明のエラーに泣かされました。
以下の説明では、解凍先をC:\としたもの(即ち、Squid関連のファイルはすべて、C:\squidに作成される)として説明します。
3:Squidの設定
Squidを起動する前に次のような設定を行います。
3−1:squid.confとmime.confの作成
以下のコマンドをコマンドプロンプトより実行して、これらのファイルを作成します。
C:\> cd \squid\etc
C:\squid\etc> copy squid.conf.default squid.conf
C:\squid\etc> copy mime.conf.default mime.conf
3−2:squid.confの編集
3−1:で作成したsquid.confをノートパッドなどで開いて編集します。
私は以下のように編集しました。
;;
# ACCESS CONTROLS
;;
#Recommended minimum configuration:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl localnet src 127.0.0.1/32
acl hoshino src 192.168.0.0/16 ←ご自身の環境に合わせたプライベートIPアドレスを指定してください。
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
;;
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access allow localnet
http_access allow hoshino ←先ほどのACLでアクセス許可を与えます。
http_access deny manager
;;
# NETWORK OPTIONS
;;
# Squid normally listens to port 3128
#http_port 3128
http_port 8080 ←Proxyのポート番号を8080とします。私は3128番が気に入っているので、3128番としていますが、一般的には8080番とした方がよいでしょう。
;;
# MEMORY CACHE OPTIONS
;;
#Default:
# cache_mem 8 MB
cache_mem 16 MB ←使用されるメモリの総量を指定します。
;;
# DISK CACHE OPTIONS
;;
#Default:
# cache_dir ufs c:/squid/var/cache 100 16 256
cache_dir ufs c:/squid/var/cache 2000 16 256 ←ディスクにキャッシュしておける容量(メガバイト単位)を指定します。
左から順に、2000がディスクキャッシュ容量、16が一次ディレクトリ数、256が二次ディレクトリ数を表しています。
;;
# LOGFILE OPTIONS
;;
#Default:
# logfile_rotate 10
logfile_rotate 7 ←ログファイルのローテーション回数を指示します。
;;
# OPTIONS FOR FTP GATEWAYING
;;
#Default:
# ftp_user Squid@
ftp_user root@emirinet.jp ←ユーザーが匿名FTPアクセスした際に、FTPサーバーに返す管理者のメールアドレスを指定します。
;;
# ADMINISTRATIVE PARAMETERS
;;
# TAG: visible_hostname
# If you want to present a special hostname in error messages, etc,
# define this. Otherwise, the return value of gethostname()
# will be used. If you have multiple caches in a cluster and
# get errors about IP-forwarding you must set them to have individual
# names with this setting.
#
#Default:
# none
visible_hostname proxy.emirinet.jp ←このProxyサーバーのドメイン名を記入します。
又は
visible_hostname 127.0.0.1 ←私はこの項目に127.0.0.1と記入しています。
;;
# HTTPD-ACCELERATOR OPTIONS
# TAG: httpd_accel_no_pmtu_disc on|off
# In many setups of transparently intercepting proxies Path-MTU
# discovery can not work on traffic towards the clients. This is
# the case when the intercepting device does not fully track
# connections and fails to forward ICMP must fragment messages
# to the cache server.
#
# If you have such setup and experience that certain clients
# sporadically hang or never complete requests set this to on.
#
#Default:
# httpd_accel_no_pmtu_disc off
httpd_accel_no_pmtu_disc on ←私の所では、リバースプロキシ(HTTPアクセラレータ)として動作させているので、onにしています。
通常はデフォルト(off)でよいでしょう。
3−3:キャッシュエリアの作成
squid.confの編集が終わったなら、これを使ってキャッシュ用のエリアを確保します。
エリアの確保を以下のコマンドで実行してください。
C:\> cd \squid\sbin
C:\squid\sbin> squid -z
3−4:Squidをサービスとして登録
SquidがOS起動時に自動的に起動するように、サービスの中にSquidを登録します。
登録は以下のコマンドを実行します。
C:\> cd \squid\sbin
C:\squid\sbin> squid -i
以上でSquidはサービスとして登録されます。Windows XPの場合は、コントロールパネル→パフォーマンスとメンテナンス→管理ツール→サービス と開いて、サービスの中に「Squid」という名前で登録されていることを確認してください。
以上で登録は完了です。Windowsを再起動するか、コントロールパネルのサービスから「Squid」を起動して動作を確認してください。
3−5:Squidをサービスから削除
Squidをサービスから外す場合は
C:\> cd \squid\sbin
C:\squid\sbin> squid -r
を実行します。
4:Squidの管理
以下は、Squid-NTを使う上で注意して管理する必要がある項目です。
4−1:ログの管理
Squidを実行中は、クライアントがどのサイトにアクセスしたかがログとして C:\squid\var\logs\access.log に記録されます。
このファイルは放置しておくと、どんどんとサイズが増えてしまいます。
Squidには、ログファイルのローテーション機能があり、管理者によって記録中の"access.log.<ローテーション回数>"という別のファイル名にして新たにaccess.logを作り出す機能があります。
これによってsquid.confの中で指定した回数分のローテーションが可能になっています。
ログのローテーションは、コマンドプロンプトから以下のコマンドを実行します。
C:\> cd \squid\sbin
C:\squid\sbin> squid -n squid -k rotate
4−2:メモリに関して
SquidはCPUの性能はさほど必要ではありませんが、メモリに関しては余裕を持たせた方がよいでしょう。
他に何も動かしていないなら、Windows NT/2000では最低でも256MB以上、XP/2003なら512MB以上、Vista/2008なら2GB以上でご利用することをお勧めします。
追伸:試行錯誤しながらの構築でよくわかっていない点もあり、至らない点がありましたら申し訳ございません。
この記事を書くにあたって参考にしたサイト
Windows NT 4.0/2000/XP/2003用のSquid
Squidによるプロキシサーバの構築/Server-Config
2011年11月21日追記:ログのローテーションの説明に誤りがありましたので、訂正いたします。大変申し訳ございませんでした。
2011-10-31
お目覚め
Good Morning! お目覚めいかが?
今日は久しぶりに早起きしました。
早起きすると、一日が長く感じられてとても得した気分です。
しっかり寝るのは美容の点からも大事だから、夜遊びはほどほどにして朝を心地よく迎えたいものです。
「今日もきっと素敵なことがありそう!」そんなことを予感できる朝を迎えましょうよ、ねっ。