最終更新日: 2014年 5月17日
Squid Home / FAQトップ

3. 設定・起動

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

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

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

squidを実行を起動するには、最初にsquid.confという設定ファイルに各種の情報を設定する必要があります。 squid.conf で設定できる全項目に関してはsquid.conf(squid2)詳細またはsquid.conf(squid3)詳細を参考にしてください。取り敢えず動けば良いのであれば「最小限の設定を行う」を参考にしてください。
なお、squid.conf がどこにあるか判らない場合は
# find / -name squid.conf [Enter]

で検索してみてください。

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

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

# squid -z [Enter]

上記コマンドを実行することでsquidで利用するキャッシュディレクトリが作成されます。なお、Redhat(CentOS)やDebia(Ubuntu)などでパッケージを使い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の起動時のオプションを教えてください。

-a ポート番号
指定したポート番号でリクエストを待ち受けます。
-d レベル
stderrへのデバックレベルを指定します。 指定したレベルまでのメッセージがstderrではき出されます。
-f 設定ファイル
指定した設定ファイル(デフォルトは"squid.conf")を使って起動します。
-h
使い方のヘルプを表示
-k reconfigure
設定ファイルを再度呼び込みます。 kill -HUPと等価です。
-k rotate
kill -USR1と等価です。 これによってログのローテションを行います。 ログを(例えば日ごとに)幾つかのファイルに分ける場合にはこれを実行すると良いでしょう。
-k shutdown
Squidを安全に終了させます。 接続中のセッションが終わるまで待ってから終了します。
-k interrup
接続中のセッションの終了を待たずに、直ちにSquidを終了します。
-k kill
ログファイルやキャッシュをクローズせずに直ちにSquidを終了します。 終了させるための最後の手段として使うようにしてください。
-k debug
USR2シグナルを発行します。 これによってSquidは完全なデバックメッセージを表示するようになります。 再びUSR2シグナルを与えると、デバックメッセージの表示を終了します。
・ -k check
ZEROシグナルを発行します。 これはSquidプロセスが動作しているかをチェックする際に利用します。
-s
Syslogへの出力を有効にします。 ログはレベル0のものだけが出力されます。
-u ポート番号
ICPメッセージを交換するポートを指定できます。 デフォルトでは3130です。
-v
バージョンを表示します。
-z
スワップディレクトリ(キャッシュディレクトリ)を作成します。 初めてSquidを実行する時やcache_dirの設定を変更した場合にはこれを実行します。
-D
DNSの検査をしません。 Squidは起動時に有名な幾つかのホストのresolvを実行してDNSが正常に機能するかを検査しています。これを行わないでSquidを起動する場合に指定します。
・ -F
swap.state ログをクリーンにします。 クリーンを行っている最中にHTTPリクエストがあってもログには記録できません。
-N
デーモンプロセスにならないように起動します。
-R
SO_REUSEADDR オプションをソケットにセットしません。
-V
HTTPアクセラレータモードでバーチャルホストをサポートします。 これは httpd_accel_host virtual を設定ファイルに書くのと同じことです。
・ -X
設定ファイルの構文のフルデバッグを有効にします。
-Y
Return ICP_OP_MISS_NOFETCH instead of ICP_OP_MISS while the swap.state file is being read. If your cache has mostly child caches which use ICP, this will allow your cache to rebuild faster.
Squid Home / FAQトップ

参考: