Dell Optiplex GXa |
SolarisTM 9 x86 12/02 |
squid-2.5.STABLE4
proxy (プロクシ(プロキシと発音する人もいる) 代理という意味) キャッシュ サーバーソフト。
必要なソフトウェア:
squid-2.5.STABLE4.tar.gz(02.Jly.2002 Released)
http://www.squid-cache.org/Versions/v2/2.5/
準備からインストール:
作業ディレクトリを作成する。
$ mkdir /opt/src/squid-2.5.STABLE4
作成したディレクトリに移動する。
$ cd /opt/src/squid-2.5.STABLE4/
アーカイブをダウンロードする。
$ wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE4.tar.gz
アーカイブを解凍展開する。
$ tar xozf squid-2.5.STABLE4.tar.gz
展開されたディレクトリに移動する。
$ cd squid-2.5.STABLE4
最適化スクリプトを実行する。
$ ./configure --sysconfdir=/etc
コンパイルスクリプトを実行する。
$ make all
SuperUserになる。
$ su
password:
インストールする。
# make install
インストールされたディレクトリの所有者と所属グループを変更しておく。
# chown -R nobody:nogroup /usr/local/squid
設 定:
設定ファイルをviで開く。
# vi /etc/squid.conf
以下のように変更して保存する。
53行目
http_port 8080
(最近(ここ1〜2ヶ月の間)8080ポートをスキャンされることが
多いので、ルーターやFireWallで閉じる事が出来ない場合は、
3128と8080以外の他の奇想天外なポート番号を指定した方
がいいだろう)
115行目
icp_port 0
(他のキャッシュサーバーと連携をとる訳ではないので、0を
指定してやる)
486行目
cache_mem 0 MB
(今回のサーバーはキャッシュプロクシ専用と言う訳ではなく、
搭載メモリ容量も少ないのでメモリキャッシュは使用しない。)
519行目
maximum_object_size 40960 KB
(キャッシュ対象のファイルサイズ上限はデフォルトでは4MB
だが比較的大きなアーカイブもキャッシュするように40MBに
した)
695行目
cache_dir ufs /var/spool/squid_cache 400 32 256
(キャッシュファイルのパスを指定し、容量も指定している。
家庭内LAN用なのと、/varの残り容量を加味して、容量は
比較的少なめの400MBとした。
一次ディレクトリ数は32個、それぞれの中の二次ディレ
クトリ数は256個に指定している)
702行目
cache_access_log /var/log/squid/access.log
(ログのパス指定)
710行目
cache_log /var/log/squid/cache.log
(ログのパス指定)
762行目
emulate_httpd_log on
(デフォルトのアクセスログは非常に見づらい(時刻表記が1970年1月1日からの
加算秒になってたり)ので、Apacheのログ出力に準拠したフォーマットにする。)
815行目
pid_filename /var/log/squid/squid.pid
(プロセスIDメモファイルのパス指定)
863行目
ftp_user you@domain1.com
(匿名ftp時のパスワード指定(自分のメールアドレス))
1743行目以下に追加行
acl LAN src 192.168.0.0/255.255.255.0
http_access allow LAN
(アクセス許可ホスト(ネットワーク)をLANという名前で定義して、
許可を与える)
1986と1987行目
cache_effective_user nobody
cache_effective_group nogroup
(コメントアウト(#)を外す)
2163行目
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.5.STABLE4/squid-2.5.STABLE4/contrib/squid.rc
しているが、Solaris用に書き換えるには内容が違いすぎるので、
単純なスクリプトを以下のように新しく手書きした。
新規ファイル /etc/init.d/squid.rc をviで作成する。
# vi /etc/init.d/squidrc
以下の内容を書き込んで保存する。
#!/bin/sh
case "$1" in
'start')
if [ -f /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