【Squid FAQ】 最終更新日:2004年2月2日

D-netプランページへ】【Squid Homeへ】 【FAQトップへ】

3. 設定・起動

3.1 Squidを実行するにはどのくらいのマシンスペックが必要ですか。

マシンスペックには制限は特にありませんが、Squidにとって最も重要なリソースはメモリです。 次にディスクのスペックも性能に影響を与えるでしょう。ディスクは可能であればIDEではなくSCSIが良いでしょう。 CPU性能はそれほど要求しません。 1998年現在、私なら以下のスペックを推奨するでしょう。

3.2 Squidの設定ファイル(squid.conf)

squidを実行を起動するには、最初にsquid.confという設定ファイルに各種の情報を設定する必要があります。 squid.confに設定できる項目に関してはこちらを参考にしてください。取り敢えず動けば良いのであれば以下の項目程度を設定しておけば宜しいかと思います。
squid.confがどこにあるか判らない場合は、
# find / -name squid.conf [Enter]
で検索してみてください。
設定項目 設定内容の意味
http_port 8080 Proxy用のポートして「8080」を使います
cache_dir /usr/local/squid/cache 100 16 255 squidのキャッシュエリアの場所とその最大サイズを定義。 通常はデフォルトのままで良い。なお、このディレクトリのアクセス権は後述の「cache_effective_user」で指定したユーザがアクセスできるようになっている必要がある。
acl localnet src 192.168.0.0/255.255.255.0 squidへのアクセスを許可するネットワーク用のACLを定義。この場合192.168.0.xからのアクセスのみを許可するように定義している。
http_access allow localnet ACLとして定義したlocalnetからのアクセスを許可する。
この記述は、「http_access allow manager localhost」と記述されている部分の次くらいで記述すると良いであろう。
forwarded_for OFF HTTPリクエストの際に、相手のサーバにクライアントのアドレスを知らせないようにする。
cache_effective_user nobody squidをここで指定したユーザ権限で動作させる。なお、「cache_dir」とログ関係のディレクトリがここで指定したユーザで書き込めるようにしておく必要がある。

3.3 キャッシュディレクトリの確保

squid.confの設定が完了したら、設定した内容に基づいてsquidのキャッシュエリアを確保します。キャッシュエリアの確保は以下のコマンドを入力します。 なお確保に先立ち、キャッシュディレクトリが「cache_effective_user」で指定したユーザの権限で書き込みできるようにしておく必要がある。

# squid -z [Enter]

上記コマンドを実行することでsquidで利用するキャッシュディレクトリが作成される。

3.4 Squidを起動する。

squidを起動するには

# /usr/local/squid/bin/RunCache & [Enter]

を実行すれば、このスクリプトによって起動されます。このスクリプトから起動された場合、なんらかの理由でsquidが終了してしまっても、再度、squidが自動的に起動されます。

3.5 Squidが起動しないようです。

# squid -k parse [Enter]

を実行してみてください。 もし、squid.confに構文エラーがあれば間違いを指示してきます。なにも出てこないなら、squid.confに構文のミスはありません。

また、squidを起動しようとしているマシンの名前がDNSに登録されているかも確認してください。 
% nslookup 自分のマシン名 [Enter]
ex.)
nslookup proxy.robata.org
:::
Server: 192.168.0.254
Address: 192.168.0.254#53

Name: proxy.robata.org
Address: 192.168.0.2

良くあるミスに、logやキャッシュディレクトリが、Squidを起動したユーザの権限で書き込めないことがあります。 /var/log/messagesを確認してsquidがこれらのディレクトリのオープンに失敗していないか確認してみてください。 
squidを起動するユーザは"cache_effective_user"で明示的に指定できます。

3.6 ブート時に自動的に起動したいのです。

・/etc/rc.d/init.d/squidファイルを次の内容で作成します。
#!/bin/sh
#
# This starts and stops squid proxy chache
#
# chkconfig: 345 90 42
# description: squid is Proxy server.

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Check that smb.conf exists.
[ -f /usr/local/squid/etc/squid.conf ] || exit 0 # See how we were called.
case "$1" in
start)
echo -n "Starting Squid services: "
/usr/local/squid/bin/RunCache &
echo
;;
stop)
echo -n "Shutting down Squid services: "
kill -9 `cat /usr/local/squid/logs/squid.pid`
echo
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: squid {start|stop|restart}"
exit 1
esac
作成後、実行属性を与えます。

# chmod +x /etc/rc.d/init.d/squid [Enter]

また、以下のコマンドを入力して、各ランレベルで上記のスクリプトが実行されるようにしえおきます。

# chkconfig --add squid [Enter]

3.7 Squidの起動時のオプションを教えてください。

D-netプランページへ】【Squid Homeへ】 【FAQトップへ】

Copyright© 1998-2003 ROBATA.ORG