| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
「Squid」用のユーザを作成します。
Solaris# groupadd -g 3128 squid Solaris# useradd -u 3128 -g squid -d /usr/local/squid -s /bin/false squid |
「Squid」のソースファイルをダウンロードし、インストールします。
Solaris# mkdir /usr/local/src/squid <= 作業用ディレクトリの作成 Solaris# chmod 777 /usr/local/src/squid <= 作業用ディレクトリのパーミッション変更 Solaris# exit <= 一般ユーザになる Solaris% cd /usr/local/src/squid <= 作業用ディレクトリへ移動 Solaris% wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.STABLE10.tar.gz <= 「Squid」のソースをダウンロード Solaris% gunzip -c squid-2.5.STABLE10.tar.gz | tar xf - <= ダウンロードしたファイルの展開 Solaris% cd squid-2.5.STABLE10 <= 展開したディレクトリに移動 Solaris% ./configure --enable-snmp --enable-err-languages=Japanese \ --disable-ident-lookups --enable-underscores |& tee configure.log Solaris% gmake |& tee make.log <= コンパイル Solaris% su <= スーパーユーザになる Password: <= パスワードの入力 Solaris# gmake install |& tee make-install.log <= インストール |
Solaris# vi /usr/local/squid/etc/squid.conf <= 設定ファイルの編集 # http_port 3128 ↓ http_port 8080 <= プロキシサーバのポートを8080に変更 使用するキャッシュの設定 # cache_dir ufs /usr/local/squid/var/cache 100 16 256 ↓ cache_dir ufs /var/log/squid/cache 1024 16 256 数値は左から キャッシュで使用する容量(MB) ディレクトリを分割するサブディレクトリの数 サブディレクトリを分割する数 です。 ログファイルの位置を以下のように変更 # cache_access_log /usr/local/squid/var/logs/access.log ↓ cache_access_log /var/log/squid/logs/access.log # cache_log /usr/local/squid/var/logs/cache.log ↓ cache_log /var/log/squid/logs/cache.log # cache_store_log /usr/local/squid/var/logs/store.log ↓ cache_store_log /var/log/squid/logs/store.log ここまで # pid_filename /usr/local/squid/var/logs/squid.pid ↓ pid_filename /var/log/squid/squid.pid <= プロセスIDを格納するファイルを指定 # ftp_user Squid@ ↓ ftp_user kaz@crimson-snow.net <= FTPのanonymousでログインする時のメールアドレス LAN内のPCのみ許可するため、以下のように追加 acl CONNECT method CONNECT acl localnet src 192.168.0.0/255.255.255.0 <= 追加(localnetの設定) http_access allow localnet <= 追加(localnetを許可) http_access deny all ここまで # cache_effective_user nobody ↓ cache_effective_user squid <= 実行ユーザを指定 cache_effective_group squid <= 追加(実行グループを指定) visible_hostname Solaris.crimson-snow.net <= 追加(ホスト名(FQDN)を設定) # forwarded_for on ↓ forwarded_for off <= プロキシサーバのマシンのローカルIPアドレスを隠す 以下を追加(プロキシ経由でアクセスしていることをアクセス先に知られないようにする為) header_access X-Forwarded-For deny all header_access Via deny all header_access Cache-Control deny all ここまで # error_directory /usr/local/squid/share/errors/English ↓ error_directory /usr/local/squid/share/errors/Japanese <= 日本語のエラーページにする coredump_dir /usr/local/squid/var/cache ↓ #coredump_dir /usr/local/squid/var/cache <= コメントアウト(コアダンプは残さない) |
デフォルトの設定から変えたので、起動前に多少の準備が必要です。
ディレクトリとファイルの作成
必要なディレクトリとファイルを作成し、所有者を変更します。
Solaris# mkdir /var/log/squid Solaris# mkdir /var/log/squid/cache Solaris# mkdir /var/log/squid/logs Solaris# touch /var/log/squid/logs/access.log Solaris# touch /var/log/squid/logs/cache.log Solaris# touch /var/log/squid/logs/store.log Solaris# chown -R squid:squid /var/log/squid |
キャッシュディレクトリの作成
「Squid」が利用するキャッシュディレクトリを作成します。
Solaris# /usr/local/squid/sbin/squid -z |
Solaris# /usr/local/squid/bin/RunCache & |
「Squid」の自動起動
起動スクリプトファイルを作成し、Solarisを起動する際に自動的に「Squid」を起動するようにします。
Solaris# vi /etc/init.d/squid <= 起動スクリプトの作成
#!/sbin/sh
PID=`/usr/bin/ps -aef | /usr/bin/grep RunCache | /usr/bin/grep -v grep | /usr/bin/awk '{print $2}'`
case "$1" in
'start')
if [ -f /usr/local/squid/bin/RunCache ]; then
if [ $PID ]; then
echo "Squid has started"
else
/usr/local/squid/bin/RunCache &
echo "Running: Squid"
fi
fi
;;
'stop')
if [ $PID ]; then
kill -KILL $PID
kill -KILL `cat /var/log/squid/squid.pid`
echo "Stopping: Squid"
else
echo "Squid has stopped"
fi
;;
'restart')
$0 stop
sleep 3
$0 start
;;
'status')
if [ $PID ]; then
echo "Squid starts"
else
echo "Squid stopped"
fi
;;
*)
echo "Usage: $0 { start | stop | restart | status }"
exit 1
;;
esac
exit 0
Solaris# chmod 744 /etc/init.d/squid <= 起動スクリプトファイルに実行権限付加
Solaris# ln /etc/init.d/squid /etc/rc2.d/S99squid <= ランレベル2で起動する
Solaris# ln /etc/init.d/squid /etc/rc3.d/S99squid <= ランレベル3で起動する
Solaris# ln /etc/init.d/squid /etc/rc0.d/K99squid <= ランレベル0で停止する
|
「Squid」が起動している状態で行います。
Solaris# /usr/local/squid/sbin/squid -k rotate |
ログのローテーションの自動実行
Solaris# crontab -e <= 設定ファイルの編集 30 2 * * 1 /usr/local/squid/sbin/squid -k rotate <= 追加(毎週月曜日に実施) |