Dell Optiplex GXa |
Solaris 8 x86 6/00 |
戻る
squid-2.4.STABLE7
proxy (プロクシ(プロキシと発音する人もいる)(代理という意味だそうだ)) キャッシュ サーバーソフト。
不純な動機:
使いやすいというよりも、「馴れ」と「いざ友人に質問されたときにすぐに返答ができるように」という
理由から、普段使用しているブラウザはMicrosoft Internet Explorerを使っている。しかし、最近の
IEは動作がかなり遅い。
IEのキャッシュも本来ならば、次に同じサイトを閲覧する場合の表示速度の向上のための筈だが、
このキャッシュファイルが大きくなってしまうと、サイト内容とキャッシュ内容の比較に時間がかかっ
てしまうらしく、逆に足を引っ張ってしまっているようだ。たまに「インターネット一時ファイルの削除」
をすると速度が改善することがあるので、多分間違いないだろう。
最近はOperaなどの軽いブラウザも流行っているので、乗り換えてしまいたい気持ちはやまやま
だが、ブラウザごときに料金を払うのも何だし、料金を支払わないと表示されるあのバナー広告も
邪魔だし、冒頭の理由からも今一つ踏み切れない。
IEの「インターネット一時ファイルの削除」をすると、同じ内容を表示する時にどうしてもネットワーク
トラフィックが発生する。ブロードバンドとはいえ、所詮はADSLなので「イライラ」することもない訳
ではない。
そこで、IEの「インターネット一時ファイルの削除」をしても速度的にあまり問題にならないようにす
るため、LAN内にキャッシュサーバを立てる事にした。
プロクシサーバーソフトも幾つかあるが、あまり考えずに最もポピュラーなsquidを選択した。
必要なソフトウェア:
squid-2.4.STABLE7-src.tar.gz (02.Jly.2002 Released)
http://www.squid-cache.org/Versions/v2/2.4/
準備からインストール:
作業ディレクトリを作成する。
$ mkdir /opt/src/squid-2.4.stable7
作成したディレクトリに移動する。
$ cd /opt/src/squid-2.4.stable7/
アーカイブをダウンロードする。
$ wget http://www.squid-cache.org/Versions/v2/2.4/squid-2.4.STABLE7-src.tar.gz
アーカイブを解凍展開する。
$ tar xozf squid-2.4.STABLE7-src.tar.gz
展開されたディレクトリに移動する。
$ cd squid-2.4.STABLE7
最適化スクリプトを実行する。
$ ./configure --prefix=/usr/local/squid
コンパイルスクリプトを実行する。
$ make all
SuperUserになる。
$ su
password:
インストールする。
# make install
インストールされたディレクトリの所有者と所属グループを変更しておく。
# chown -R nobody:nogroup /usr/local/squid
設定ファイルは/usr/local/squid/etc/squid.coonfになるが、
このパスが気に入らない場合は、上記の最適化をする前に、
configureスクリプトの176行目を書き換えればいい。
設 定:
設定ファイルをviで開く。
# vi /usr/local/squid/etc/squid.conf
以下のように変更して保存する。
48行目
http_port 8080
(最近(ここ1〜2ヶ月の間)8080ポートをスキャンされることが
多いので、ルーターやFireWallで閉じる事が出来ない場合は、
3128と8080以外の他の奇想天外なポート番号を指定した方
がいいだろう)
56行目
icp_port 0
(他のキャッシュサーバーと連携をとる訳ではないので、0を
指定してやる)
405行目
cache_mem 0 MB
(今回のサーバーはキャッシュプロクシ専用と言う訳ではなく、
搭載メモリ容量も少ないのでメモリキャッシュは使用しない。)
438行目
maximum_object_size 40960 KB
(キャッシュ対象のファイルサイズ上限はデフォルトでは4MB
だが比較的大きなアーカイブもキャッシュするように40MBに
した)
601行目
cache_dir ufs /var/spool/squid_cache 400 32 256
(キャッシュファイルのパスを指定し、容量も指定している。
家庭内LAN用なのと、/varの残り容量を加味して、容量は
比較的少なめの400MBとした。
一次ディレクトリ数は32個、それぞれの中の二次ディレ
クトリ数は256個に指定している)
608行目
cache_access_log /var/log/squid/access.log
(ログのパス指定)
616行目
cache_log /var/log/squid/cache.log
(ログのパス指定)
668行目
emulate_httpd_log on
(デフォルトのアクセスログは非常に見づらい(時刻表記が1970年1月1日からの
加算秒になってたり)ので、Apacheのログ出力に準拠したフォーマットにする。)
721行目
pid_filename /var/log/squid/squid.pid
(プロセスIDメモファイルのパス指定)
769行目
ftp_user you@domain1.com
(匿名ftp時のパスワード指定(自分のメールアドレス))
1413行目以下に追加行
acl LAN src 192.168.0.0/255.255.255.0
http_access allow LAN
(アクセス許可ホスト(ネットワーク)をLANという名前で定義して、
許可を与える)
1563と1564行目
cache_effective_user nobody
cache_effective_group nogroup
(コメントアウト(#)を外す)
1735行目
logfile_rotate 10
(コメントアウト(#)を外す)
ログ格納ディレクトリを作成する。
# mkdir /var/log/squid
作成したログ格納ディレクトリをsquidを実行するユーザー権限に変更する。
# chown -R nobody:nogroup /var/log/squid
一時的に/var/spoolディレクトリのパーミッションを緩くしておく。
# chmod 777 /var/spool
キャッシュファイル用ディレクトリ(/var/spool/squid_cache/)を作成させる。
(結構時間がかかった)
# /usr/local/squid/bin/squid -z
/var/spoolディレクトリのパーミッションを戻す。
# chmod 755 /var/spool
起動してみる。
# /usr/local/squid/bin/squid
起動スクリプトの作成:
Linux用の起動スクリプトならソースに付属
/opt/src/squid-2.4.stable7/squid-2.4.STABLE7/contrib/squid.rc
しているが、Solaris用に書き換えるには内容が違いすぎるので、
単純なスクリプトを以下のように新しく手書きした。
新規ファイル /etc/init.d/squid.rc をviで作成する。
# vi /etc/init.d/squidrc
以下の内容を書き込んで保存する。
#!/bin/sh
case "$1" in
'start')
if [ -f /usr/local/squid/etc/squid.conf ] ; then
/usr/local/squid/bin/squid &
echo " Squid STARTED OK!"
fi
;;
'stop')
if [ -n /var/log/squid/squid.pid ] ; then
/usr/local/squid/bin/squid -k shutdown
echo " Squid STOPPED ok "
fi
;;
*)
echo " !!! ??? !!! squid.rc { start | stop } !!! ??? !!! "
;;
esac
exit 0
作成した起動スクリプトのパーミッションに実行を追加する。
# chmod 755 /etc/init.d/squid.rc
テストしてみる。
# /etc/init.d/squid.rc stop
# /etc/init.d/squid.rc start
ディレクトリを移動する。
# cd /etc/rc2.d
起動スクリプトのシンボリックリンクをこの中に張る。
# ln -s ../init.d/squid.rc ./S99squid