Squid (SQUID Internet Object Cache)

[ 戻る | トップページに戻る ]

概要

Squid とは、HTTP/FTP 等の Proxy サーバである。SSL もサポートしている。

URL

http://squid.nlanr.net/Squid/ (Official Site)

インストール環境

Plamo Linux 1.4.4 (Kernel 2.2.12 + libc5)
Plamo Linux 2.2.1 (Kernel 2.2.19 + glibc 2.2)

必要なもの

特になし

バージョン

2.2.STABLE5, 2.3.STABLE4, 2.4.STABLE2

インストール手順 (〜2.3.STABLE4)

$ tar xvfz squid-2.2.STABLE5-src.tar.gz
$ cd squid-2.2.STABLE5

$ ./configure --prefix=/usr/local/squid
$ make all
(snip)
Making all in icons...
make[1]: Entering directory `/usr/local/src/squid-2.2.STABLE5/icons'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/local/src/squid-2.2.STABLE5/icons'
Making all in errors...
make[1]: Entering directory `/usr/local/src/squid-2.2.STABLE5/errors'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/usr/local/src/squid-2.2.STABLE5/errors'

ん? errors ? いいのか。心臓に悪いなぁ。(^^; では、インストール。
$ su
# make install

あとは /usr/local/squid/etc/squid.conf を適宜編集。 以下の 2 行のコメントアウトを外しておくのを忘れないように。
#acl QUERY urlpath_regex cgi-bin ¥?    <--- 行頭の # を削除
#no_cache deny QUERY                   <--- 行頭の # を削除

ログファイルのローテーションのために、nobody ユーザの crontab に以下の エントリを追加する (Squid は nobody ユーザで実行) 。
# for Squid logfile rotation.
0 0 1 * *  /usr/local/squid/bin/squid -k rotate

キャッシュディレクトリの初期化。
# /usr/local/squid/bin/squid -z
2000/03/28 20:26:29| Creating Swap Directories
FATAL: Failed to make swap directory /usr/local/squid/cache: (13) Permission denied
Squid Cache (Version 2.2.STABLE5): Terminated abnormally.
CPU Usage: 0.020 seconds
Maximum Resident Size: 0 KB
Page faults with physical i/o: 252

あれ? root で実行しているのに、なんで Permission denied ? うーん、先につくるかぁ...。
# mkdir /usr/local/squid/cache
# chown nobody:nogroup /usr/local/squid/cache
# chown nobody:nogroup /usr/local/squid/logs
# /usr/local/squid/bin/squid -z
2000/03/28 20:29:52| Creating Swap Directories

今度はおっけー。起動しておしまい。
# /usr/local/squid/bin/RunCache &
[1] 7276
Running: squid -sY  >> /usr/local/squid/squid.out 2>&1

インストール手順 (2.4.STABLE2)

$ sU
# groupadd -g 40 squid
# useradd -u 40 -d /usr/local/squid -g squid -m squid
# exiT
$ tar xvfz squid-2.4.STABLE2-src.tar.gz
$ cd squid-2.4.STABLE2
$ ./configure --enable-err-language=Japanese --enable-useragent-log --enable-referer-log
$ make all
$ su
# make install

最初にキャッシュの初期化を行う。
# /usr/local/squid/bin/squid -z
2001/09/11 20:24:55| ALERT: setgid: (22) Invalid argument
2001/09/11 20:24:55| Creating Swap Directories
FATAL: Failed to make swap directory /usr/local/squid/cache: (13) Permission denied
Squid Cache (Version 2.4.STABLE2): Terminated abnormally.
CPU Usage: 0.000 seconds = 0.000 user + 0.000 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 5

原因のひとつ目は、 /etc/group で nogroup::-2: となっている事。 Nogroup::65534: に修正することで解決。
残る原因は、ディレクトリがないためなので、作成してやる。
# mkdir /usr/local/squid/cache
# chown squid:squid /usr/local/squid/cache
# chown squid:squid /usr/local/squid/logs
# /usr/local/squid/bin/squid -z

squid ユーザの crontab に以下のエントリを追加。
# for Squid logfile rotation.
0 0 1 * *  /usr/local/squid/bin/squid -k rotate

/usr/local/squid/etc/squid.conf を以下のように修正。
#Default:
# cache_effective_user nobody
# cache_effective_group nogroup
cache_effective_user squid              <--- 追加
cache_effective_group squid             <--- 追加

以下の内容の rc.squid を作成。
#!/bin/sh

case "$1" in
start)
        # Start daemons.
        echo -n "Starting squid cache server: "
	/usr/local/squid/bin/RunCache &
        echo ""
        touch /var/lock/squid
        ;;
stop)
        echo -n "Shutting down squid cache server: "
        kill -TERM `cat /usr/local/squid/logs/squid.pid`
        echo ""
        rm -f /var/lock/squid
        ;;
*)
        echo "Usage: squid.init {start|stop}"
        exit 1
esac
exit 0

システム起動時に、自動起動させるために、/etc/rc.d/rc.local に以下のエントリを追加。
if [ -x /etc/rc.d/rc.squid ]; then 
  /etc/rc.d/rc.squid start        
fi 

[ 戻る | トップページに戻る ]