最終更新日: 2004年11月18日

WELCOME TO SQUID 2

D-Netプランのページへ】 【Squid Homeへ
これは、デフォルトのSquid設定ファイルです。Squid.2.5用のsquid.confをベースを基に説明しています。 以前(Squid2.0ベース)のSquid.confの説明はこちらに置いてあります。 ドキュメンテーションについては、
http://cache.is.co.za/squid/
を、またFAQについては
http://squid.nlanr.net/
のホームページを参照すると良いでしょう。

※squid.confでミスや不明な点を見つけたらメールください。 

ネットワーク・オプション

TAG: http_port

Usage: port
       hostname:port
       1.2.3.4:port
SquidがHTTPクライアント・リクエストを受け取るソケット・アドレス。 多数のソケット・アドレスを指定してもよい。
3つの形式があります:
・ポート
・ホスト名とポート
・IPアドレスとポート
あなたがホスト名かIPアドレスを指定すれば、Squidはその特定のアドレスにソケットを結び付けます。これは古い指定方法「tcp_incoming_address」オプションを代替えします。恐らく、特定のアドレスへ拘束する必要は無いでしょう。通常は、ポート番号だけの単独で使用して構いません。

デフォルトのポート番号は 3128 です。 多くのプロキシサーバでは経験的に 8080 とするケースが多いようです。
アクセラレータモード(accelerator mode)でSquidを実行しているならば、あなたは恐らくデフォルトのポートで無く 80 で受け取るようにする事でしょう。

コマンドラインで -a オプションでポートを指定した場合、この設定ファイル上でのポート番号は無視されるでしょう。 しかしながら、IPアドレスの指定は無視しないでしょう。

複数の行で指定して多数のソケット・アドレスを指定しても構いません。

内部と外部のインターフェースを持ったデュアルホームのマシン上でSquidを実行する場合、私たちは、 内部アドレス:http_port のように内部アドレスを指定するようにあなたに勧めます。こうする事でSquidは内部アドレスからだけ見えるようになります。
Default : http_port 3128

TAG : https_port

注意: このオプションは --enable-ssl オプションを使ってSquidが構築(コンパイルの事)されている場合のみ有効です。

Usage: [ip:]port cert=certificate.pem [key=key.pem] [options...]
Squidが クライアントからのHTTPSリクエストを受け取るソケット・アドレスです。

これは、アクセラレータモードにてSquidを実行しており、あなたがアクセラレータレベルでSSLを行いたい状況において役立ちます。
各々自分のSSL証明書および(または)オプションと共に、多数のライン上の多数のソケット・アドレスを指定しても構いません。

オプション:
cert         = SSL証明書ファイルへのパス(Path)です。 (PEM フォーマット)

key          = SSLのプライベートキーファイルへのパス(Path)です。 (PEM フォーマット)
               もし指定されなければ、証明書ファイルとプライベートキーは結合したファイル
               であると仮定されます。

version      = サポートする SSL/TLS のバージョン
                  1   自動 (default)
                  2   SSLv2 オンリー
                  3   SSLv3 オンリー
                  4   TLSv1 オンリー

cipher       = サポートする暗号のコロンで区切ったリスト

options      = SSLエンジンのバージョンオプション。これは最も重要
次の通り: NO_SSLv2 SSLv2 の使用を許さない。 NO_SSLv3 SSLv3 の使用を許さない。 NO_TLSv1 TLSv1 の使用を許さない。 より多くの完全なリストのためにsrc/ssl_support.cあるいは OpenSSLドキュメトを見てください。
Default : none

TAG : ssl_unclean_shutdown

注意: このオプションは --enable-ssl オプションを使ってSquidが構築(コンパイルの事)されている場合のみ有効です。

幾つかブラウザー(特にMSIE)のバグでのSSLシャット・ダウン・メッセージを除去します。
Default : ssl_unclean_shutdown off

TAG : icp_port

Squidが隣接のキャッシュサーバとの間で、ICPを送受信するポート番号でデフォルトは3130です。使用を無効にするには "0" を指定します。
コマンドラインからの起動で -u とともに指定した場合にはその時の番号が優先されます。
Default : icp_port 3130

TAG : htcp_port

Squidが隣接のキャッシュサーバとの間で、HTCPリクエストを送受信するポート番号です。 デフォルトは 4827 です。 使用を無効にするには "0" を指定します。
Default : htcp_port 4827

TAG : mcast_groups

このタグは、マルチキャストIPCのリクエストを受け取る為に、このサーバが加わるマルチキャストグループのリストを指定します。
注意: ここへの記述には注意してください。 ICP問い合わせ( ICP_quuery_ )とICP応答( ICP_reply_ ) の違いを理解しておいてください。このオプションは、サーバでマルチキャスト問い合わせを受けたい場合のみセットしてください。
マルチキャストICPを送る為このオプションを設定しないでください。(そのためには、cache_peer を使います。) ICPの応答はいつでもユニキャストで送られます。ですから、このオプションはマルチキャストグループからの応答には効果がありません。
あなたは、他のもう一つのグループによってすでに用いられているマルチキャストアドレスを使わないように注意しなくてはいけません。 NLANRでは、Wabキャッシングの為のマルチキャストアドレススペースのブロックを割り当てています。 あなたが、あなた自身の使用のためのアドレスを受け取るために、[email protected]までメ
ールをください。
もしあなたがマルチキャストについて確信がなければ、どうぞSquid FAQ ( http://squid.nlanr.net/Squid/FAQ/ )でマルチキャスト章を読んで下さい。

使い方 : mcast_groups 239.128.16.128 224.0.1.20

デフォルトで、Squidは、マルチキャスト・グループになにも設定されていません。

TAG : tcp_incoming_address
TAG : tcp_outgoing_address
TAG : udp_incoming_address
TAG : udp_outgoing_address

使い方 : tcp_incoming_address 10.20.30.40
udp_outgoing_address fully.qualified.domain.name

tcp_incoming_address は、クライアントおよび他のキャッシュからのコネクションを受け取るHTTPソケットに利用されます。
tcp_outgoing_address は、リモート・サーバーおよび他のキャッシュサーバーへのコネクションに利用されます。
udp_incoming_address は他のキャッシュサーバーから受け取るICPソケットに利用される。
udp-outgoing_address は、ICPパケットを他のキャッシュサーバーに送るのに利用されます。

デフォルトでは、ここにはどんなアドレスを指定されていません。

0.0.0.0をudp_incoming_addressにセットした場合、すべての利用可能なインターフェースからSquidはUDPメッセージ受け取ります。

そのとき、udp_outgoing_addressが255.255.255.255(デフォルト)にセットされる場合、それはudp_incoming_addressと同じソケットを使用するでしょう。 あなたがICPを持ちたければ、これを変更して隣接のキャッシュからのリクエストを別のアドレスに送られていないか注意してください。

注意:udp_incoming_address と udp_outgoing_addressは同じポート番号3130を使うため、(0.0.0.0を除いて)両方を同じ値にはできません。
Default :
udp_incoming_address 0.0.0.0
udp_outgoing_address 255.255.255.255

隣接キャッシュサーバーの選択アルゴリズムに影響を及ぼすオプション

TAG : cache_peer

階層キャッシュにおける他のキャッシュサーバーを、次のような書式で指定します。
書式:
hostname type http_port icp_port
例えば:
#                                      proxy icp
#            hostname         type     port  port  option 
# ----------------------------------------------------------------------
# cache_peer parent.foo.net   parent   3128  3130  [proxy-only]
# cache_peer sib1.foo.net     sibling  3128  3130  [proxy-only]
# cache_peer sib2.foo.net     sibling  3128  3130  [proxy-only]

          type: parent(親)、 sibling(兄弟姉妹)、またはmulticast
   proxy_port: キャッシュサーバーがproxyの要求を受けるポート番号
     icp_port: オブジェクトについて隣接キャッシュサーバーに問い合わせる時の
                ポートnon-ICPの隣接キャッシュの為には、ICPポートには「7」を
                明示して、隣接マシンの/etc/inetd.confファイルでUDPエコー・
                ポートを有効にさせていることを確かめて下さい。
     options:
                proxy-only 
                weight=n
                ttl=n
                no-query
                default
                round-robin
                multicast-responder
                closest-only
                no-digest
                no-netdb-exchange
                no-delay
                login=user:password | PASS | *:password
                connect-timeout=nn
                digest-url=url
                allow-miss
                max-conn
                htcp
                carp-load-factor

                'proxy-only'を指定した場合、このキャッシュから取って来られた
        オブジェクトはローカルに保存されません。

                'weight=n' が指定された場合、親キャッシュに重みが加えられます。
                重みの値は整数で指定します。デフォルト重量は1です。
                大きな重みを持つ親を優先します。

                'ttl=n'が指定された場合、ICPを使ってこのアドレスへ尋ねる場合に
                使用するIPマルチキャストのTTLを指定します。
                マルチキャスト・グループに送る場合に有用です。ICPが任意のホスト
                から返答が有る場合、 'multicast-responder'オプションを使って他の
                グループ・メンバーを形成しないと受け入れません。

                'no-query' を指定することで、ICPクエリ(質問)を隣接に送りません。

                'default'を指定すると、「最後の頼みの綱」としてこの親キャッシュを
                使用します。 'default'は親キャッシュとICPを使用できない場合に使用
                すべきです。

                'round-robin' を指定する事で、ICPクエリに応答が無かった場合に、別の
                round-robin セットの親へ尋ねるようにします。

                'multicast-responder' は、指定された仲間がマルチキャスト・グループ
                のメンバーであることを示します。
                ICPクエリ(質問)は、直接隣接キャッシュへは送られません。
                しかし、ICP返答はそれから受理されるでしょう。

                'closest-only'はICP_OP_MISSの返答の時にFIRST_PARENT_MISSesではなく
                 CLOSEST_PARENT_MISSesへ進める事を示します。

                'no-digest'を指定することで、ダイジェストをリクエストしません。

                'no-netdb-exchange'は隣人からのICMP RTTデータ・ベース(NetDB)要求を
                無効にします。

                'no-delay'によってdelay poolsによって隣人へのアクセスに影響を及ぼす
                のを防ぎます。

                'login=user:password'を使うと、プロキシと親のプロキシはユーザIDと
                パスワードを求めます。注:ストリングはURLエスケープ(つまりスペースの
                場合%20)を含むことができます。これは、さらに%が%%として書かれることを
                意味します。

                'login=PASS'を使うことで、上流のプロキシでユーザ認証がある場合に、
                ユーザの証明を隣接キャッシュとの間で行うようにします。
                これは通常のHTTP認証において有効です。 
                注:proxy_authとこれを組み合わせるために、両方の代理はHTTPのみが
                1つの代理ログインのために許可するのと同じユーザ・データ・ベース
        を共有しなければなりません。
        さらにこれが仲間にあなたのユーザ代理パスワードを暴露する可能性に
                注意してください。注意して利用の事!

                'login=*:password'を使うと、上流のキャッシュへ常に固定のパスワードを
                渡すようになります。 上記のlogin=username:passwordに使い方が似ています。

                'connect-timeout=nn'を使うと、隣接の接続のタイムアウト時間を指定でき
                ます。 peer_connect_timeoutを参照してください。

                'digest-url=url'を使うと、ダイジェスト(ダイジェストが有効になって
                いる場合)を指定されたurlのホストから取ってきます。

                'allow-miss'を使うと、キャッシュされたものだを使うのでは、兄弟キャッ
                シュへも要求します。
                icp_hit_staleが兄弟によって使用される場合、これは有用です。このオプ
                ションの使用によって、キャッシュのループが発生するかも知れません。
                また、このオプションを2方向の隣接を持つことを回避するべきです。
                
                'max-conn'を使うとSquidは隣接キャッシュの為の接続数を制限します。

                'htcp'を使うとICPの代わりに、HTCPを送る使用して隣接にクエリを行い
                ます。さらに、恐らく"ICPポート"を3130の代わりに4827にをセットしたい。

                'carp-load-factor=f'を使うと、CARP配列に参加する親キャッシュを定義し
                ます。'f'の値には加える親の数によって、1.0を加えていきます。

        注意:non-ICP/HTCPの隣接キャッシュは 'parent' として指定されなければなりません。
Default :
none

TAG: cache_peer_domain

隣接キャッシュサーバーが要求されるドメインに制限を設けるときに使用します。

Usage:
  cache_peer_domain cache-host domain [domain....]
  cache_peer_domain cache-host !domain

使用例:
  cache_peer_domain parent.foo.net .edu

".edu"ドメインについてparent.foo.netにUDP要求を行います。ドメイン名の先頭に"!"を付けると、そのドメイン以外の問い合わせを行うことになります。

注意:
* 1つのcache-hostに複数のドメインを与えることもできますし、それぞれを複数の行に分けることもできます。
(訳者注:ドメインを1行で指定することも可能で、また複数のcache_peer_domainステータスを記述することもできるという意味と思います。)
* 複数のcache-hostにマッチするドメイン名がある場合には、最初にマッチしたcache-hostが適用されます。
* ドメインの制限がないキャッシュホストにはすべての要求が渡されます。
* 如何なるデフォルトもありません。
* ACLセクションの“cache-peer-access”も参照してください。

TAG: neighbor_type_domain

使用方法: neighbor_type_domain parent|sibling domain...

特定のドメインの為に、cache_peerで設定した隣接キャッシュのタイプと違うタイプに変更することが可能です。通常は、ドメインに対してデフォルトのキャッシュホストと違う隣接キャッシュタイプを使いたい場合に指定します。

使用例:
  cache_peer parent cache.foo.org 3128 3130
  neighbor_type_domain cache.foo.org sibling .com .net
  neighbor_type_domain cache.foo.org sibling .au .de

TAG: icp_query_timeout (msec)

Squidは普通、最近のICP要求によって自動的に迅速な要求のタイムアウトの値を決定します。もしこの値をユーザが決定したい場合には、"icp_query_timeout"をゼロ以外の数値で設定します。この値にはミリ秒単位で設定します。ですからこれを2秒(古いデフォルト値)にするには、

     icp_query_timeout 2000

とします。
Default :
icp_query_timeout 0

TAG: maximum_icp_query_timeout (msec)

通常は、ICPクエリ(検索)のタイムアウトは動的に決定されます。しかし、時々、それは非常に大きな値に結びつくことがあります。(5秒間とか) 動的なタイムアウトに制限を設けるならば、このオプションを使用してください。 タイムアウトが動的ではなく固定されているならば、このオプションは使えません。タイムアウトを固定にする場合は、'icp_query_timeout' を参照してください。
Default :
maximum_icp_query_timeout 2000

TAG: mcast_icp_query_timeout (msec)

マルチキャストpeerのために、Squidは規則的にICPの"probes"(プローブ:探査)を発信し、これを聞いているマルチキャストアドレス上のoeer(隣接キャッシュ)の返事の数を数えます。 Squidがこの応答を待つ時間を指定できます。デフォルトでは2000msec、即ち2秒です。
Default :
mcast_icp_query_timeout 2000

TAG: dead_peer_timeout (second)

このコントロールはSquidがpeerキャッシュが無反応と判断する時間を秒で指定します。
もし、この時間たってもICPに応答がない場合には、Squidはこれを無反応か、とてつもない遠方にあるものと判断するでしょう。
しかし、継続されたICPに対して反応があり次第、生きているものとしてマークされます。

このタイムアウトまた、peerキャッシュからのICP応答に対する予想に影響します。もし最後のICPリプライが受け取られたとき以来、「dead_peer」秒以上が過ぎたら、Squidは、次の質問でICP答えを受け取ることを予想しないでしょう。このように、もし要求の間でのSquidの時間がこのタイムアウトよりも大きければ、Squidは親の替わりに、起源サーバーへ直接要求するでしょう。

# dead_peer_timeout 10 seconds

TAG: hierarchy_stoplist

このリストに記述されたワードがURLの中に見つかると、隣接キャッシュではなく直接サーバにリクエストを行います。隣接キャッシュを使いたくないオブジェクトのために使ってください。
このオプションは複数回指定できます。デフォルトは、'cgi-bin'と'?'を含むURLの場合に直接オブジェクトを持ってきます。

# hierarchy_stoplist cgi-bin ?

TAG: no_cache

ACLの要素リストに一致した場合、返答はキャッシュに貯えられません。言いかえれば、あるオブジェクトを貯えない強要するためにこれを使用してください。

貯えられてはならないACL名を示すために単語"DENY"を使用しなければなりません。

私たちは、次の2行のラインを使用するようにあなたに勧めます。
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY


キャッシュ・サイズに影響するオプション

TAG: cache_mem (bytes)

注: このパラメーターは最大のプロセスサイズを指定ではありません。これはSquidが使う多くのメモリの内のオブジェクトがキャッシュされるメモリを示しているに過ぎません。Squidではこの他にも同様にメモリを使用しますものがあります。 詳細に関しては、Squid FAQセクション8を参照してください。

'cache_mem'は使用される総量のメモリを指定します。
これらには:
  *In-Transit(転送中)のオブジェクト
  *Hot(ホット)のオブジェクト
  *Negativ(ネガティブ)オブジェクト
(訳者注)
私なりにこの意味を考えてみると、
In-Transit --- いままさにWWWサーバから読み込んでいるデータ
Hot --- 以前(数秒? 数分?)前に読み込んだデータ
Negatuiv --- In-TransitでもHotでもないデータ
では無いかと想像します。(詳しくはだれかソースを調べてください(^_^;))

これらのオブジェクトのためのデータは、4KBブロックで保存されます。このパラメーターの上限は、総サイズを4KBブロック単位で割り切れる値を指定します。輸送中オブジェクトは高い優先度になっています。

輸送中オブジェクトは他のオブジェクトより優先度が高いので、新たに入ってきたデータのためにスペースが必要になると、ホットオブジェクトとネガティブオブジェクトは破棄されます。つまり、ホットオブジェクトとネガティブオブジェクトは。転送中オブジェクトが使っていないスペースを使っているだけといえます。

もし状況が要求すれば、この限界は拡張されるでしょう。
明確に、もしあなたの入力要求割合が、保持するためにメモリーの「cache_mem」以上の転送中オブジェクトを要求すれば、新しい要求を満足させるために、この限界を超過するでしょう。ロードが減れば、このブロックはフリーとなって、その後、ブロックは、Hotオブジェクトを保存するために使われるでしょう。

cache_mem_lowとcache_mem_high(後述)の値は、メモリー・プールの使用をチューニングするために使うことができます。上限に達すると、転送中オブジェクトとHotオブジェクトのために捨てられます。転送が完了し現在のメモリが下限以下の時のみ、そのオブジェクトはメモリに残ります。

デフォルトは8Mbyteです。

Default :
#cache_mem 8MB

TAG: cache_swap_low (0-100 パーセント)
TAG: cache_swap_high (0-100 パーセント)

スワップ(ディスク)にあるキャッシュオブジェクトを交換する指標にする最低および最高値のマークです。スワップが最低値の基準を超えたなら、交換の開始を始めます。 オブジェクトが最高基準に近づくとより頻繁に交換が行われるようになり、最低基準に近づけようとします。

デフォルトは90%および95%です。あなたが大きなキャッシュを持っていれば、5%は何百MBとなります。その場合、これらの数をともにより接近しているようにしたいと思うかもしれません。
 
Default:
cache_swap_low 90

cache_swap_high 95


TAG: maximum_object_size (byte)

オブジェクトがこのサイズより大きい場合には、ディスクで保存されないでしょう。値はキロバイトで指定されます。 また、デフォルトは4MBです。あなたが高いBYTESヒットレートを得たい場合、おそらくこの値を増加させるべきです。 あなたがもっと回線の帯域を増やしスピードを増やしたいと思うかなら、これを低く残すべきです。

注:LFUDA置換を使用する場合LFUDAのバイトヒットレートを改良し最大限にするためにこの値を増加させるべきです! この議論に関しては下の、replacement_policy を参照してください。
Default:
maximum_object_size 4096 KB

TAG: minimum_object_size (byte)

このサイズより小さなオブジェクトはディスク上に保存されないでしょう。値はキロバイトで指定されます。また、デフォルトは0KB(すべてキャッシュする)です。
Default:
minimum_object_size 0 KB

TAG: maximum_object_size_in_memory (bytes)

このサイズより大きなオブジェクトはメモリにキャッシュされません。 cache_memで指定したメモリキャッシュよりも小さくかつ、オブジェクトができるだけキャッシュされるような十分な大きさを指定すべきです。 これにより実行速度は改善されることでしょう。
Default:
maximum_object_size_in_memory 8 KB

TAG: ipcache_size (エントリの数)
TAG: ipcache_low (パーセント)
TAG: ipcache_high (パーセント)

IPキャッシュの数と上限値、下限値の指定
Default:
ipcache_size 1024
ipcache_low 90
ipcache_hhigh 95

TAG: fqdncache_size (エントリの数)

FQDNのキャッシュエントリ数の最大数 (注:ドメイン名の数)
Default:
fqdncache_size 1024

TAG: cache_replacement_policy

キャッシュ交換ポリシーは、必要が生じたときにディスクスペースからキャッシュをどかす決定をするパラメータです。
lru : SquidオリジナルのLRUポリシーをベースにしたリスト
heap GDSF : Greedy-Dual Size Frequency
heap LFUDA: Least Frequently Used with Dynamic Aging
heap LRU : heapを使った LRU ポリシーの実行

これらは以下のような動作をします。

LRU ポリシーは、最近アクセスされたオブジェクトを維持しようとします。.

heap GDSFポリシーは、キャッシュの中の人気のある小さなオブジェクトを維持しようとします。 これはヒットレートを上げることになります。しかしながら、より大きな(恐らくポピュラー)オブジェクトを立ち退かせるので、それはLFUDAより低いバイト・ヒット率をとなるでしょう。

heap LFUDAポリシーは、サイズにかかわらずキャッシュの中でポピュラーなオブジェクトを維持することで、ヒットレートは犠牲になりますがバイト・ヒット率は最適化します。

両方のポリシーは、頻度ベースの置換えポリシーでキャッシュの陳腐化を防ぐ動的な老化メカニズムを使いこなします。

注:LFUDAでの置き換えポリシーを使用する場合、LFUDAの潜在的なバイト打撃割合改良を最大限にするためにmaximum_object_sizeの値をデフォルトの4096のKBより上に増加させるべきです。

GDSFおよびLFUDAのキャッシュポリシーに関してより詳細には、
http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html

http://fog.hpl.external.hp.com/techreports/98/HPL-98-173.html
を参照してください。
Default:
memory_replacement_policy lru

TAG: memory_replacement_policy

メモリ交換ポリシーは、必要が生じたときにメモリペースからキャッシュをどかす決定をするパラメータです。

詳細に関しては、cache_replacement_policyを参照してください。
Default:
memory_replacement_policy lru

ログファイルパラメータおよび、キャッシュ・ディレクトリー

TAG: cache_dir

使い方:
  cache_dir Type Directory-Name Fs-specific-data [options]

あなたは、異なるディスク・パーティションへキャッシュするために、複数のcache_dirを指定することができます。

Typeは、使用する記憶システムの種類を指定します。"ufs" だけがデフォルトで利用できるように構築されます。他の記憶システムを使いたいなら --enable-storeio 使ってconfiugre(再コンパイル)してください。

「ディレクトリー」は、キャッシュ・スワップ・ファイルが保存されるトップのディレクトリーです。もしあなたがキャッシュのためにディスク全体を使いたければ、ここに、マウントポイントのディレクトリーを指定すると良いでしょう。ディレクトリーは、実在してSquidプロセスによって書き込みできなくてはいけません。
Squidは、勝手にこのディレクトリーを作り出すことはしません。もし、いかなる「cache_dir」ラインも明示されなければ、以下のディレクトリがデフォルで使われるでしょう

cache_dir ufs Directory-Name Mbytes L1 L2 [options]

「Mbyte」は、このディレクトリーの下で使用するディスク・スペースの量(MB)です。デフォルトは100MBです。これをあなたの構成に適した量に合わせて変えて下さい。 あなたが持っているディスクスペースの総量をここに指定しないでください。全ディスクスペースをSquidで使いたい場合でも、20%を差し引いた値を指定してください。

Defauult: /var/spool/squid

'Level-1'は、「ディレクトリー」の下に作り出されるだろう最初のレベルのサブディレクトリーの数です。デフォルトは16です

'Level-2'は、第1レベル(Level-1)ディレクトリの下に作られる第2レベルのサブディレクトリーの数です。デフォルトは256です。


aufs ストアタイプについて:
"aufs" は、"ufs"と同じ記憶フォーマットを使用します。主に POSIX-スレッドにおいてディスクI/O中のSquidプロセスのブロッキングを避けるために使われます。これは、以前は async-io として知られていました。

cache_dir aufs Directory-Name Mbytes L1 L2 [options]

アーギュメントについては ufs の場合のものを参照してください。


diskd ストアタイプについて:
"diskd" は"ufs" と同じ格納フォーマットを使います。 これはディスクI/OでのSquidプロセスのブロックを避ける為、Squidと分離したプロセスとして利用します。

アーギュメントについては ufs の場合のものを参照してください。

Q1 Squidがが新しいファイルを開く要求をした場合に、認められないI/Oの数を指定します。デフォルトは64です。

Q2 Squidがメッセージのブロックを始める不認可のメッセージの数を指定します。 それは沢山の返答のメッセージがキューに入ったとき、それが収納されるまでです。デフォルトは72です。


coss ストアタイプについて:
block-size=nは、COSS cache_dirのための"ブロック・サイズ"を定義します。Squidはブロック番号としてファイル番号を使用します。 ファイル番号が24ビットまで制限されているので、ブロック・サイズはCOSS分割の最大のサイズが決定します。 デフォルトは512バイトです。 それは最大で、512<<24のcache_dirサイズ、あるいは8つのGBとなります。 Squidがcache_dir にいくつかのオブジェクトを書いた後、cossブロック・サイズを変更してはならないことに注意してください。


Common オプション:
read-only とした場合、cache_dir は読み出し専用です。

max-size=nは、このストアディレクトリでのオブジェクトの最大サイズを指定する。 それは最初にオブジェクトのダンプを行うストアディレクトリを選ぶために使用される。 注意: 最適なmax-sizeを使うために、最小のcache_dir で指定されたサイズの範囲内の値を選ぶか、指定しない方が良いでしょう。
cossストアタイプでは、 max-sizeはCOSS_MEMBUF_SZのサイズ(ハードコードで1MB)よりも小さい値にしてください。
Default:
cache_dir ufs /var/spool/squid 100 16 256

TAG: cache_access_log

クライアント・リクエスト活動を記録します。受け取られたすべてのHTTPおよびICPクエリへのエントリーを含んでいます。無効にするために、"none"としてください
Default:
cache_access_log /var/log/squid/access.log
cache_access_log /var/log/squid/access.log

TAG: cache_log

Squidのログ記録ファイルを指定します。
これは、あなたのキャッシュの振る舞いについての一般情報が記録されます。あなたがこのファイルに記録する情報を増やすことができます。その場合には「debug_option」タグを参照してください。
Default:
cache_log /var/log/squid/cache.log

TAG: cache_store_log

ストレージ・マネージャーの活動を記録します。 キャッシュから削除されたオブジェクト、ファイルに保存されたオブジェクト、またはオブジェクトがどれくらいの期間を保存されたかが記録されます。 無効にしたい場合には "none" を指定します。 これらのデータを分析するユーティリティが実はありません、したがって、無効にしても問題ありません。
Default:
cache_store_log /var/log/squid/store.log

TAG: cache_swap_log

キャッシュの"swap.log"の場所を指定します。 このログ・ファイルは、ディスクにオブジェクトのメタデータを保持します。 それを使ってスタートアップの間にキャッシュを再構築します。 普通、最初はこのファイルは、"cache_dir"のディレクトリーに存在します、 しかし、ここでパス名を指定することで交代できます。 ここへの指定はディレクトリではなくフルパスネームであることに注意してください。 これが全体のオブジェクト・リストのためのインデックスであるので、定期的にそれを移動させることはできません
Default:
none

TAG: emulate_httpd_log on | off

squidでは、ログファイルの形式として多くの "httpd" プログラムが使うログ・ファイル形式をエミュレートすることができます。 このエミュレーションを無効/有効にするための指定を"off"、"on"を指定します。デフォルトでは、Squidに特有のログ形式で記録されるように"off"になっています。
Default:
emulate_httpd_log off

TAG: log_ip_on_direct on|off

階層キャッシュのログの際に、ダイレクトで目的地にアクセスした場合に、そのIPアドレスを記録します。 以前のSquidでは、ホスト名を記録していました。 以前と同じ形式が良い場合には、"off"を指定してください。
Default:
log_ip_on_direct on

TAG: mime_table

Squidで使うMIMEテーブルへのパス名を指定します。あなたは、これを変える必要がありません、しかし、もしかすると、デフォルトファイルを参考に、編集することがあるかもしれませんので、そのときにこのパラメータを使うと良いでしょう。
Default:
mime_table /usr/local/squid/etc/mime.conf

TAG: log_mime_hdrs

Squidは、要求とHTTPトランザクションのMIME応答ヘッダーの両方を記録できます。ヘッダーは暗号化され安全で、access.logの最後に2つの括弧でくくられたフィールドとして見えるでしょう。(ネイティブまたはhttpdをエミュレートされたログ形式) そうするためにはこのパラメータを"on"にします。
Default:
log_mime_hdrs off

TAG: useragent_log

SquidはHTTPリクエストのUser-Agentフィールドをここで指定したファイルへ書き出します。 デフォルトではuseragent_log は無効になっています。
Default:
none

TAG: referer_log

SquidはHTTPリクエストのRefererフィールドをここで指定したファイルへ書き出します。 デフォルトではreferer_log は無効になっています。
Default:
none

TAG: pid_filename

squidのプロセスIDを指定のファイルへ記録します。 無効にする場合には"none"にします。
Default:
pid_filename /usr/local/squid/logs/squid.pid

TAG: debug_options

デバッグログの記録オプションを section,level の形で指定します。これらは各ソースファイルで固有のセクションを割り当ててあります。levelを低くすると記録が少なくなります。フルデバック(level 9)にすると記録が大変大きくなりますので注意してください。 セクションとして"ALL"を指定でき、この場合すべてのsectionに対してデバッグLevelが設定されます。 普通は"ALL,1"で実行してください。
Default:
debug_options ALL,1

TAG: log_fqdn on|off

onにすると、完全修飾ドメイン名(fully qualified domain name:FQDN)でaccess.logに記録されます。 Squidがこれを行う場合、接続する全てのIPアドレスをDNSでの検索が行われることになります。 これは潜在的にキャッシュの速度を遅くすることになり、結果としてブラウジング速度を悪化させることになります。
Default:
log_fqdn off

TAG: client_netmask

ログファイルとキャッシュマネージャで記録されるクライアントのアドレスをネットマスクします。 キャッシュにおけるクライアントのプライバシーを保護する場合に変更してください。 ネットマスクに 255.255.255.0 としたなら、すべてのIPアドレスの最後の桁が '0' となります。
Default:
client_netmask 255.255.255.255

外部のサポート・プログラムのオプション

TAG: ftp_user

もしあなたが、Anonymous-FTPサーバへのパスワードに" [email protected]" のようなルールに合った情報を与えるならこれをセットしてください。(細かいことに口やかましいftpサーバーの使用を可能にするでしょう)
下記のようにデフォルトでドメイン名を付加しないのは、どんなドメインでユーザーでも利用できるようにするためです。ある種のftpサーバーは、Eメールのアドレスが有効であることを検証 ( 例えば perl.com) します。
Default:
ftp_user squid@

TAG: ftp_list_width

ftp一覧の幅をセットします。これは、スタンダードのブラウザの幅に収まるあるべきです。ftpサイトをブラウズするときに、これに合わせた形で長いファイル名を切りとることができます。
Default:
ftp_list_width 32

TAG: ftp_passive

もしあなたのファイヤーウォールが、Squid が passive 接続する事を許さないなら、このオプションを切ってください。
Default:
ftp_passive on

TAG: ftp_sanitycheck

デフォルトでSquidは、FTPのアドレスの健全性とデータ保全性の為に、FTPのデータ接続要求のアドレスがFTP接続アドレスと同じである事をチェックします。 あなたがFTPの接続の際に、データ接続のアドレスを別のアドレスでも許可する必要があるならこれを切ってください。
Default:
ftp_sanitycheck on

TAG: cache_dns_program

注意: Squidを再コンパイルする場合、このタブを使いたいなら --disable-internal-dns オプションでconfigure(再コンパイル)してください。

dnslookupプロセスのため、プログラムのパスを明示します。
Default:
cache_dns_program /usr/local/squid/bin/dnsserver

TAG: dns_children

注意: Squidを再コンパイルする場合、このタブを使いたいなら --disable-internal-dns オプションでconfigure(再コンパイル)してください。

DNSの検索の為のプロセスの数を指定します。 大きなヘビーなサーバの場合、最低でもこの数を10にすべきでしょう。 最大は32で最小は5まで指定できます。
Default:
dns_children 5

TAG: dns_retransmit_interval

DNSの再送のインターバル時間を指定します。 DNSサーバの指定が複数ある場合、それに比例してインターベル時間は延びます。2で最小は5まで指定できます。
Default:
dns_retransmit_interval 5 seconds

TAG: dns_timeout

DNSクエリ(検索)のタイムアウト時間です。 DNSクエリへの反応が時間内にDNSサーバから無かった場合に、そのDNSサーバは利用不可と判断されます。
Default:
dns_timeout 5 minutes

TAG: dns_defnames on/off

注意: Squidを再コンパイルする場合、このタブを使いたいなら --disable-internal-dns オプションでconfigure(再コンパイル)してください。

通常、DNSサーバはRES_DEFNAMEオプションを無効にしています。(res_init(3)参照))
これは、squidの階層のキャッシュにおいて、ローカル環境で使われるような単純なホスト名を解釈するのを防ぎます。 dnsserverで単純なホスト名を取り扱うことを可能にするために、このオプションを可能にして下さい。
Default:
dns_defnames off

TAG: dns_nameservers

あなたが、あなたの/etc/resolv.confファイルの中で与えられたものの代わりに使用するようにDNSネーム・サーバ(IPアドレス)のリストを指定したい場合は、これを使用してください。

例: dns_nameservers 10.0.0.1 192.172.0.4
Default:
none

TAG: hosts_file

ホストローカルなIPアドレス変換のデータベースを指定します。殆どのオペレーティングシステムにはこのようなファイルが存在します。 Un*xでは/etc/hosts、WindowsNT/2000系では%SystemRoot%(通常は c:\winnt )\system32\drivers\etc\hosts、Windows9x/Me系では、 %windir%(一般的には c:\windows )\hostsなどです。 ファイルの形式はドット( . )で区切られらIPアドレスに続き空白を開けてホスト名が記述されます。 ハッシュ(#)文字で始まる行はコメントです。
Default:
hosts_file /etc/hosts

TAG: diskd_program

diskdの実行ファイルの場所を指定してください。 あなたが店ioモジュールのうちの1つとしてdiskdを中へコンパイルしたならば、これが単に有用であることに注意してください。
Default:
diskd_program /usr/lib/squid/diskd

TAG: unlinkd_program

ファイル削除プロセス用の実行ファイルの位置を指定してください。
Default:
unlinkd_program /usr/lib/squid/unlinkd

TAG: pinger_program

注意: Squidを再コンパイルする場合、このタブを使いたいなら --enable-icmp オプションでconfigure(再コンパイル)してください。

pinger(ピンがー)・プロセスの実行ファイルの位置を指定してください。
Default:
pinger_program /usr/lib/squid/pinger

TAG: redirect_program

URLリダイレクターの実行ファイルの場所を指定します。 このプログラムは組み込まれていません。リダイレクターを作成する方法についての情報に関しては、FAQ(15章)を参照してください。デフォルトによって、リダイレクターは使用されません
Default:
none

TAG: redirect_children

リダイレクター・プロセスの数を指定します。
数を少なくすると、SquidはURLの処理に時間がかかるかもしれません。 また数を多くすると、RAMやその他のリソースを消費することでしょう。
Default:
redirect_children 5

TAG: redirect_rewrites_host_header

デフォルトではSquidはリダイレクターよってにリクエストされたヘッダを書き換えます。 もしアクセラレータで動作させていてリダイレクターを働かせたくないならこのオプションによって停止してください。
Default:
redirect_rewrites_host_header 0n

TAG: redirector_access

ACLのアクセスリストで使われ、定義することでどのリクエストがどのリダイレクターを通過するかを明示することができます。 デフォルトではすべてのリクエストは送信されます。
Default:
none

TAG: auth_param

これは様々な認証スキームへパラメータを渡すために使用されます。
形式: auth_param scheme parameter [setting]

auth_param の基本的なプログラムは、/usr/lib/squid/ncsa_auth /usr/etc/passwd
ACLのアクセスリストで使われ、定義することでどのリクエストがどのリダイレクターを通過するかを明示することができます。 デフォルトではすべてのリクエストは送信されます。

クライアントエージェントへの認証プロンプトがの順はconfigファイルへのスキームの記述順に依存します。
IEはバグ(rfc 2617に準拠していない)があり、スキームとしてより安全なスキームを使うようにしてもベーシック認証を最初に使ってしまいます。今のところ、ファイルの中でオーダーを下に定義してください。
もし他のブラウザで問題が出るなら、ベーシック認証のスキームを最初にもってくるか、他の認証をすべて無効にしてください。

認証スキームを変更した場合には、Squidを一度シャットダウンして再起動してください。

================= 基礎的なスキームのためのパラメーター =================

"program" は外部認証のためのコマンドを指定します。 そのようなプログラムは、"username password"を含んでいるラインを読み、"OK"あるいは"ERR"を返答します。
もし認証を使う場合にはproxy_auth 用のACLを1つ定義することを確認してください。
そうしないと、デフォルトでベーシック認証が使用されません。

もしあなたが伝統的なproxy用認証が必要なら、ソースファイルの../auth_modules/NCSAディレクトリ
に移動して、次のようにタイプしてください:
% make
% make install

そして、このプログラムを使うように次のように記述します。
auth_param basic program /usr/lib/squid/ncsa_auth /usr/etc/passwd

"children" チャイルド数
認証プロセスの為のプロセス数を指定します。 (デフォルトでは使っていない)
もしこの値が少ないとユーザIDとパスワードの照会の為の処理には時間がかかるでしょう。 
auth_param basic children 5

"realm" realmストリング
指定することで、ベーシック認証のスキームでユーザ名・パスワードを求める画面に指定されたストリング(文字列)が表示されます。
auth_param basic realm Squid proxy-caching web server
"credentialsttl" 生存時間
Squidが外部プログラムにてユーザとパスワードのペアを有効とした場合のそれを有効とする時間を指定します。 1タイムパスワード(SecureIDのような)のようなシステムを使っているならばこの値を大きくしないといけないでしょう。 また、そのようなシステムを使っているならhttp_access規則の中でmax_user_ip ACLを使って攻撃への対処をしてください。
=========== ダイジェストスキームの為のパラメータ ===========
"program" コマンドライン
認証の為の外部コマンドを指定してください。 そのようなプログラムは、"username":"realm"が適切なH(A1)でbase64でコード化されたラインを読みます。H(A1)についてはrfc 2616を参照してください。
認証を使う場合、proxy_authのACLを1つは定義してください。 デフォルトでは認証は使えるように定義されてません。

もし認証プログラムを再構築したいなら、../digest_auth_modulesに移動して次のようにタイプしてください:
% make
% make install
そして次のように記述してください。
auth_param digest program /usr/lib/squid/digest_auth_pw /usr/etc/digpass
"children" チャイルド数
認証プロセスの数を指定します。 これを小さく設定するとH(A1)の算出に時間がかかるでしょう。H(A1)の算出に時間がかかってネットワークが遅い間合いにはこの値を大きくしてください。
auth_param digest children 5

"realm" realm文字列
指定することで、ダイジェスト認証のスキームでユーザ名・パスワードを求める画面に指定されたストリング(文字列)が表示されます。
auth_param digest realm Squid proxy-caching web server

"nonce_garbage_interval" 生存時間
クライアントエージェントの有効性をチェックする時間を指定します。

"nonce_max_duration" 生存時間
nonce(臨時・その場限り)の有効性のチェックする時間を指定します。

"nonce_max_count" 数字
nonceの使用できる回数を指定します。

"nonce_strictness" on|off
Squidでnonceのカウンターを1づつ進めていきます。 (offの場合には、ユーザエージェントがカウントするため、カウントアップにミスすることがあります。(例えば1,2,4,6))
Default off

"check_nonce_count" on|off
このディレクティブはoffにセットされたならnonceのカウントチェックを無効にして、バグの多いある主流のブラウザーのダイジェストqop 実装であっても機能するようにします。
デフォルトではonでnonce カウントは認証やり直し攻撃(authentication replay attacks)から保護します。

"post_workaround" on|off
これはGETリクエストで以前に獲得されるのと同じnonceを再使用する場合、POSTリクエストでの正しくないリクエスト要約を送るある虫の多いブラウザーへの代替手段です。
====== NTLMスキームに関するオプション ======
"program" コマンド
外部のntlm認証のためのコマンドを指定してください。そのようなプログラムは、uuencodedされたNEGOTIATE(取り決め)を含んだ行を読みとり、ntlm CHALLENGEで返答し、次に"OK" または "ERR"を返します。 ntlm認証を使用する場合は、proxy_authのaclを1つ持っていることを確かめてください。デフォルトでは、ntlm authenticator_programは使用されません。
auth_param ntlm program /usr/lib/squid/ntlm_auth
"children" チャイルド数
認証プロセスの数を指定します。 少ない数を指定すると、Squidでの証明書の処理が遅くなります。 証明書の認証でネットワークが遅いなら、この値を大きくしてください。
auth_param ntlm children 5
"max_challenge_reuses" 数字
ntlm認証での与えられたチャレンジを再利用できる回数を指定します。 この数を大きくすることはネットワークに対する攻撃の危険を増大させます。 0を指定するとチャレンジは1回しか使えなくなります。(チャレンジを再利用できない)
max_ntlm_challenge_lifetimeに詳しい情報があります。 
auth_param ntlm max_challenge_reuses 0
"max_challenge_lifetime" 時間
ntlmのチャレンジが再利用できる時間を指定します。実際の時間はこの時間以内でかつreusesでの回数以内でしょう。
auth_param ntlm max_challenge_lifetime 2 minutes

TAG: authenticate_cache_garbage_interval

ユーザ名キャッシュをガベージコレクション(がらくた収集)する周期。 これはメモリ利用(ロングインターバル 2日(2 days))とCPU時間(ショートインターバル 1分(1 minute))のトレードオフです。
Default:
authenticate_cache_garbage_interval 1 hour

TAG: authenticate_ttl

この時間は、ユーザ名とそれに与えられた証明書のがログイン後キャッシュされ、最後のリクエストからこれで指定した時間までキャッシュに残る。  そしてこの時間を経過した証明はガベージインターバルによってメモリからクリアされる。
Default:
authenticate_ttl 1 hour

TAG: authenticate_ip_ttl

あなたがSquidの認証を使う場合で "max_user_ip" ACLを使用するならば、SquidはIPアドレスが各ユーザをどれくらいの時間覚えているかコントロールします。 ダイアルアップの場合に、あなたのユーザがアドレスを速く変更してもよい場合は、小さな値(例えば60秒)を使用してください。 比較的変動のないアドレス割り当てを備えた企業のLAN環境のような場合にはより大きな値(例えば2時間)を使用して安全かもしれません。
Default:
authenticate_ip_ttl 0 seconds

TAG: external_acl_type

このオプションはヘルパープログラムによって検査するステータスの外部aclクラスを定義します。(要は、認証プログラムを拡張するような機能です)
external_acl_type name [options] FORMAT.. /path/to/helper [helper arguments..]
オプション:
ttl=n           キャッシュの結果を指定時間貯えます。(デフォルトで3600(1時間))

negative_ttl=n  negative(拒否)キャッシュの生存時間。(ttlと同じ指定方法)

children=n      拡張ACLサービスのプロセスの数
FORMAT:
%LOGIN        認証されたユーザ名
%IDENT        Identユーザ名
%SRC          クライアントのIPアドレス
%DST          リクエストされたホストのアドレス
%PROTO        リクエストされたプロトコル
%PORT         リクエストされたポート番号
%METHOD       リクエストメソッド
%{Header}     HTTPリクエストヘッダー
%{Hdr:member} HTTPリクエストヘッダー リスト番号
%{Hdr:;member}
              HTTPリクエストヘッダー リスト番号 で ; を使うと、リストは
              セパレートされます。 

ここで指定した内容は、後ほどaclてに参照されます。("acl external"ディレクティブ参照のこと)

上記のフォーマットをヘルパーに渡して戻り値(returns lines starting)として OK か ERR とそれに付随された情報によって詳細が示されます。

一般的なリターン値のシンタックス:

      OK/ERR keyword=value ...

   デフォルトキーワード(keyword):
        user=         ユーザ名 (login)
        error=        エラーディスクリプション (ERRリザルトが定義されている場合)

それらが余白を含んでいるかもしれない場合、キーワード値を引用付で囲む必要があり
ます。あるいは、余白は \ を使用することで回避します。キーワード値内のどんな引
用付または¥も \によってエスケープできます。

互換性に関する注意:
children= オプションはSquid-2.5.STABLE3以前ではconcurrency= と命名されてまし
た。そのようなシンタックスはSquid-2.5内の互換性を維持する為に受け入れられます。
しかしながら、concurrency= オプションの意味はSquid-3では別の意味となります。
したがってSquid-2.5.STABLE4からは使わないようにする事を推奨します。
Default:
none


キャッシュのチューニングオプション

TAG: wais_relay_host
TAG: wais_relay_port

WAISリクエストをhost(最初の指定)のport(2番目の指定)にリレーします。
Default:
wais_relay_port 0

TAG: request_header_max_size (KB)

これは、リクエストでのHTTPヘッダーのための最大サイズを指定します。 リクエストヘッダーは通常は比較的小さなサイズです。(約512バイト)  リミットを付けることで、あるバグ(例えばパーシスタントコネクション:persistent connections)やバッファオーバフローやサービス否認攻撃(denial-of-service attacks)を捕らえるでしょう。
Default:
request_header_max_size 10 KB

TAG: request_body_max_size (KB)

これはHTTPリクエストボディーの為の最大サイズを指定します。 言いかえればPUT/POSTリクエストの最大のサイズです。 これより大きなサイズのリクエストを送ることを試みるユーザは、 "Invalid Request" エラー・メッセージを受け取ります。 もしあなたが0(デフォルト)にこのパラメーターをセットすれば、制限はされません。
Default:
request_body_max_size 0 KB

TAG: refresh_pattern

使い方: refresh_pattern [-i] regex min percent max [option]

デフォルトで、正規表現(regex)は、大/小文字の区別があります。それを無効にするなら、-i オプションを使って下さい。

'min' は時間(分)で、明示的な満期時間のないオブジェクトが新鮮であると考えられるべき時間を指定します。 推奨された値は0です。 もし、0以外の大きな値を与えた場合、デザイナーが適切な処置を講じていなければ、動的なアプリケーションは誤ってキャッシュされるかもしれません。

'Percent' は、満期時間のないオブジェクトを、最後に変更された時からの時間の割合によって注意を払うようにします。

'Max' は明示的な満期時間のないオブジェクトが、新鮮であると考えられる時間の上限です。


最小(min)と最大(max)は分を指定し、パーセント(percent)は整数を指定します。
        オプション(options): override-expire  
                               override-lastmod 
                               reload-into-ims
                               ignore-reload
override-expire は、サーバに Expires: ヘッダーをことで min と同じようなものを強制するものです。
これは HTTP の標準から外れます。 これを有効にする場合には、それが引き起こす問題の責任はあなたにあります。

override-lastmod は最近変更されたばかりのオブジェクトであっても、強制的に満期にしてしまいます。

reload-into-ims は、クライアント上でキャッシュされていない場合や"リロード"における If-Medified-Since リクエストにおいて満期としてしまいます。これは、HTTPの標準ではありません。これを有効にする場合には、それが引き起こす問題の責任はあなたにあります。(訳者注:普通はクライアントがリクエストしたオブジェクトが、Squidのキャッシュ上にある場合にはそのデータがクライアントに渡されるが、これを指定することで必ずサーバへアクセスが発生します)

ignore-reload は、クライアント上でキャッシュされていない場合や"リロード"の要求を無視します。これは、HTTPの標準ではありません。これを有効にする場合には、それが引き起こす問題の責任はあなたにあります。

基本的にはキャッシュオブジェクトとは:
        FRESH if expires < now, else STALE 
        (満期時間 < 現在の時間のオブジェクトは新鮮、そうで無い場合は古い)
        STALE if age > max
        (最終更新日からの経過時間 > maxの場合オブジェクトは古い)
        FRESH if lm-factor < percent, else STALE
        (lm-factor < percent の場合は新鮮、それ以外は古い)
        FRESH if age < min
        (最終更新日からの経過時間 < min の場合は新鮮)
        else STALE
        (それ以外は古い)

refresh_patternを複数記述した場合、最初にマッチした条件で設定がチェックされ、条件にマッチしない場合にはデフォルトのパターンが使われます。

どうぞ、ドキュメントのReleas-Notes-1.1.txtをご覧下さい。そこのSquidのリフレッシュに関するアルゴリズムや書式が記載されています。 基本的に、キャッシュされたオブジェクトは:(1.1バージョンから変更・整理されました。)
#################################################
(訳者注:) Releas-Notes-1.1.txt によると、

expires は(WWW)サーバが応答ヘッダーに付加してきた有効時間のようです。2番目の条件は、相手のWWWサーバから送られてきたデータに付加されていたexpires時間が現在の時間より小さい場合には有効期間を過ぎているので古いと判断するようです。

  age = NOW - OBJECT_DATE :

NOWは今現在の時間。
OBJECT_DATEはオブジェクトがキャッシュに格納された時間。つまりageはキャッシュに格納されているオブジェクトに対する今現在までの経過時間を意味しているようです。ですから最初の条件は、キャッシュされているデータがMAX時間経過すると古いと判断しています。

    lm-factor < percent:
    lm-factor = age / LM_AGE。
    LM_AGE = OBJECT_DATE - LAST_MODIFIED_TIME。
    LAST_MODIFIED_TIME はオブジェクトが作者によって最後に変更された時間。

つまり、LM_AGEはキャッシュされているオブジェクトが実際に作成されてからキャッシュされたまでの経過時間(要はどれだけ古い内容なのかを意味する)
lm-factorはキャッシュされたオブジェクトの現在までの生存時間を実際に作成された時からの経過時間で割ったものになるので、作成された日付が古ければ古いほどlm-factorの値は小さくなる。
でこのlm-factorをpercent で比較してpercent より小さいものを新しいと判断するようです。ですからpercent を大きくすればするほどキャッシュに古い内容が残ります。(ただしmaxを越えることはできない)
また、lm-factorは更新されているかどうかに影響されるので、頻繁に更新されているオブジェクトはlm-factorの値が大きくなるので、キャッシュに残る可能性が低くなります。

age < min は、キャッシュ期間がminより小さい場合は新しいと判断するようです。
#################################################
Default:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

TAG: quick_abort_min (KB)
TAG: quick_abort_max (KB)
TAG: quick_abort_pct (percent)

Squidは中断(アボート)のリクエストがあったでも、キャッシュへのダウンロードを継続します。このことは、遅い回線(例えばSLIPのような)ではキャッシュに重い負荷がかかってしまい好ましくないかも知れません。 短気なユーザーは、繰り返してリクエストしてただちにダウンロードをアボートすることによって、ファイル記述子、および回線の帯域幅をつぶしてしまう可能性があります。
ユーザのアボートリクエストの場合Squidは、それまでにダウンロードされたデータの量と、 quick_abort に指定された値によって判断します。

もし転送してきているデータが残っていて「quick_abort_min」で指定されたKBよりも小さければ、最後まで取り出すでしょう。

もし転送してきているデータが残っていて「quick_abort_max」で指定されたKBよりも大きければ、ダウンロードは終了します。

もし転送してきているデータが残っていて「quick_abort_pct」で指定されたパーセントまで進んでいたならダウンロードを最後まで継続して終えるでしょう。

もしクライアントからのアボート後、どんな継続も望まないのであれば ''quick_abort_min' と 'quick_abort_max' を '0 KB' にセットしてください。

'quick_abort_min' に '-1 KB' がセットされた場合、キャッシュは転送している量にかかわらずアボートリクエスト後に転送を継続します。
Default:
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95

TAG: negativ_ttl time-units

失敗した(failed)リクエストのTime-to-Live(TTL)です。 あるタイプの失敗(例えば"connection refused"や"404 Not Foound"のような)はネガティブキャッシュ(失敗)として、少しの時間キャッシュされます。デフォルトでは5分です。
注意: これはDNS検索のネガティブキャッシュとは違います。
Default:
negative_ttl 5 minutes


TAG: positiv_dns_ttl time-inits

成功したDNS検索を積極的にキャッシュするためのTTL時間を指定します。デフォルトでは6時間(360分)です。 もしあなたがSquidのIPキャッシュの使用を最小限にしたければ、0 ではなく 1 にこれをセットして下さい。
Default:
positive_dns_ttl 6 hours

TAG: negative_dns_ttl time-units

失敗したDNS探索のキャッシをどれだけ生存させるかの時間( TTL )です。
Default:
negative_dns_ttl 5 minutes

TAG: range_offset_limit (byte) (※訳に自信ない)

Sets a upper limit on how far into the the file a Range request
may be to cause Squid to prefetch the whole file. If beyond this
limit then Squid forwards the Range request as it is and the result
is NOT cached.

Squidによって以前に取ってきたファイルを、Rangeリクエストによって途中から要求する場合、範囲移動の上限をどのくらい遠くにするかを指定します。ファイルがあり、指定した限界を越えてとすれば実際は、Squidは範囲リクエストによってフォワードします。 そして、結果はキャッシュされません。

これは、遠いRangeリクエストを(17MB後からスタートさせろとかの..)受けると、Squidは、クライアントに何かを送る前にそのポイントまでの全体のオブジェクトをフェッチして作るため、それを止めるためです。

値として -1 を指定すれば、Squidはいつでもオブジェクトを最初からフェッチしてキャッシュする原因になります。(Ver 2.0からのスタイル)

値として 0 は、Squidはクライアントがリクエストしたフェッチをしません。 (デフォルト)。
Default:
range_offset_limit 0 KB

タイムアウト

TAG: connect_timeout time-units

いくつかのシステム(特にLinux)は、connect(2)(システムコール)が適切にタイムアウトを検出できません。それゆえにSquidプロセスは、サーバー・コネクションでそれ自身のタイムアウトを強制します。 このための待つ時間の長さを調節するパラメータです。デフォルトは、2分(120秒)です。
Default:
connect_timeout 2 minutes

TAG: peer_connect_timeout time-units

このパラメーターは、どれくらい長くピアキャッシュ(隣接キャッシュ)への未解決のTCP接続を待つかを指定します。デフォルトは30秒です。さらに、個々の隣接に対する異なるタイムアウト値を 'cache_peer' ラインの 'connect-timeout' オプションでセットすることもできます。
Default:
peer_connect_timeout 30 seconds

TAG: read_timeout time-units

read_timeoutは、サーバー側コネクションで適用されます。read ()の成功後のタイムアウトをこの量によって指定が出来ます。 もしデータがこの秒数を経過しても読み込まれなかった場合には、リクエストはアボートし、ERR_READ_TIMEOUTでログされます。デフォルトは15分です
Default:
read_timeout 15 minutes

TAG: request_timeout time-units

どれくらい長く、初期の接続が成立後にHTTPリクエストを待つか指定します。
Default:
request_timeout 5 minutes


TAG: persistent_request_timeout time-units

How long to wait for the next HTTP request on a persistent connection after the previous request completes.
先にリクエストされたパーシステントコネクション(持続性ある接続:persistent connection)中に次の接続の為にどれだけ待つかを指定します。
Default:
persistent_request_timeout 1 minute

TAG: client_lifetime time-units

クライアント(ブラウザ)がキャッシュプロセスとの間で接続しているコネクションの生存時間を指定します。 適切にコネクションを閉めずに(ネットワーク失敗のために、またはクライアント実装のために)離れて行ったリモート・クライアント(ブラウザ)によって、CLOSE_WAIT状態でキャッシュのソケット(ファイル記述子)が使われてしまい、キャッシュが重くなってしまいます。これを切断するためのパラメータです。デフォルトは、1日、1440分です。

注:デフォルト値は、どんなクライアントがつながっても良いように大き目な値が設定されています。あなたは、最後の手段としてのみclient_lifetimeの値を変えるようにしてください。
もしあなたがファイル記述子を多く使っているような場合には、まず、read_timeout,request_timeout, pconn_timeout,quick_abortのパラメータの値を最初に変えることを私たちはお勧めします。
Default:
client_lifetime 1 day

TAG: half_closed_client

いくつかのクライアントは受信側をオープンにしたままで、TCPのコネクションをシャットダウンしてしまうかも知れません。
Squidは、半分が閉じたことと完全に閉じられたTCPコネクションとの違いを判ることができません。デフォルトで、ソケットのread(2)、あるいはwrite(2)がエラーを返すときまで、半分が閉じたクライアント・コネクションは、開いているままにされます。このオプションを「オフ」に変えて下さい、そしてread(2)が「これ以上の読む(べき)データ」を返さないときに、Squidは、ただちにクライアント・コネクションを閉じるでしょう。
Default:
half_closed_clients on

TAG: pconn_timeout

サーバーと他のプロキシへの持続性あるコネクション(persistent connections)のためのタイムアウト。
Default:
pconn_timeout 120 seconds

TAG: ident_timeout

IDENT検索が完了するのを待つ最大の時間。

これが大きすぎ、信頼されていないユーザからのIDENT検索を可能にした場合、サービス拒否攻撃(DoS:denial-of-service)に弱いかもしれません。
Default:
ident_timeout 10 seconds

TAG: shutdown_lifetime

SIGTERM、あるいはSIGHUPが受け取られるときに、活動的なソケットが閉じられるときまで、Squidは「シャットダウン ペンディング(shutdown pending)」モードに置かれます。これは、オープンされている記述子のためにセットするべき、シャットダウンするまでの時間です。すべてのアクティブなクライアントはこの時間の後に、「タイムアウト」のメッセージを受けるでしょう。
Default:
shutdown_lifetime 30 seconds

アクセス管理

TAG: acl

アクセス・リストを定義:
acl aclname acltype string1 ...
acl aclname acltype "file" ...

"file"を使うときに、これらのファイル中には、1ラインに1項目を記述します。

acltypeは下に記述されたタイプのうちの1つです。

デフォルトによって、正規表現はCASE-SENSITIVE(大文字と小文字を区別します)です。 
大文字・小文字の区別をやめるなら(case-insensitive)、-iオプションを使用してください。
acl aclname src ip-address/netmask ... (クライアントIPアドレス) acl aclname src addr1-addr2/netmask ... (範囲内のアドレス) acl aclname dst ip-address/netmask ... (URLホストのIPアドレス) acl aclname myip ip-address/netmask ... (local socket IP address) acl aclname srcdomain .foo.com ... # リゾルバで検索するクライアント acl aclname dstdomain .foo.com ... # リゾルバで検索するURLサーバ acl aclname srcdom_regex [-i] xxx ... # 正規表現でのクライアント名 acl aclname dstdom_regex [-i] xxx ... # 正規表現でのURLサーバ名 # URLがIPベースだった場合、dstdomain と dstdom_regex では、逆引きの検索が試されます。 # そしてその結果、逆引きに失敗したなら"none"が使われます。 acl aclname time [day-abbrevs] [h1:m1-h2:m2]  day-abbrevs:  S - Sunday  M - Monday  T - Tuesday  W - Wednesday  H - Thursday  F - Friday  A - Saturday  h1:m1 は h2:m2よりも小さくすること。 acl aclname url_regex ^http:// ... # URLの中から正規マッチング acl aclname urlpath_regex \.gif$ ... # URLパスの正規マッチング acl aclname port 80 70 21 ... acl aclname port 0-1024 ... # 指定した範囲のポートからのアクセスが可能になる acl aclname myport 3128 ... # (local socket TCP port)
acl aclname proto HTTP FTP ... acl aclname method GET POST ... acl aclname browser [-i] regexp ... # User-Agentヘッダのパターンマッチを行う acl aclname referer_regex [-i] regexp ... # Refererヘッダのパターンマッチを行う # Refererの情報は信頼性が低い。 # したがって、注意して使用してください。 acl aclname ident username ... # ident(署名?)出力の文字列をマッチする。 acl aclname ident_regex [-i] pattern ... # identの出力とパターンをマッチングします。 # どんなidentも受理するためにREQUIREDを使用してください。 acl aclname src_as number ... acl aclname dst_as number ... # アクセス・コントロールを除いて、番号(number)は特定のキャッシュへのリクエストを送るため # に使用することができます。 # 例えば、mycache.mydomain.netへの転送を1241番だけにすべて転送なら: # acl asexample dst_as 1241 # cache_peer_access mycache.mydomain.net allow asexample # cache_peer_access mycache_mydomain.net deny all acl aclname proxy_auth username ... acl aclname proxy_auth_regex [-i] pattern ... # 有効なユーザ名のリスト。 # REQUIREDを指定するとどんなユーザー名も受理します。 # # 注意: # Proxy-Authentication ヘッダーでのアクセスの時、access.logには、ログインが完了するまで # ACLでのチェックした名前は記録されない。
# # 注意: # proxy_authのリクエストは、外部の認証プログラムでユーザ名とパスワードをチェックする。 #(authenticate_programを参照のこと) # # 警告: # proxy_authは、透過プロキシを使うことができません。 # それは起源サーバーによって行われた認証と衝突します。 # 最初は動いているように見えても、動かなくなります。 acl aclname snmp_community string ... # SNMPエージェントへのアクセスを制限するコミュニティの名前 # 例: # acl snmppublic snmp_community public acl aclname maxconn number # <number>以上のHTTP接続がクライアントからあったとき、これは適合するでしょう。 acl aclname max_user_ip [-s] number # ユーザが異なるipがアドレスからログインをした場合に<number>より多くのからログインする # 場合にこれは一致するでしょう。 # authenticate_ip_ttl パラメーターは、ipエントリー中のタイムアウトをコントロールします。 # もし -s が指定されたなら、ttlが経過するまで以上のIPアドレスからのブラウジングを拒否 # します。 # -s を外した場合、Squidはユーザを悩ますでしょう。 これによって"適当に"リクエスト # の否定をします。注:(その後、限界が到達するごとに、リクエストを拒否しカウンターは # リセットされます。アクセラレータモード、あるいは、子のプロキシのからのアクセス場合、 # 多数のアドレスから来るように見えるかもしれません、したがって、リミットを 1 とした場合 # 問題を引き起こすかもしれません。 acl aclname req_mime_type mime-type1 ... # regexは、クライアントのリクエストによって生成したMIME対応と一致します。 # ファイル・アップロードあるいはあるHTTPタイプを検知するために使用することができます。 # 注:これはリプライ(返答)と一致しません。リプライされたファイル・タイプを検知するため # にこれを使用することができません。 acl aclname rep_mime_type mime-type1 ... # Squidによって、受信した応答のMIMEタイプを regex と対照させる。ファイル・ダウンロード # あるいは幾つかのHTTPトンネリングリクエストを検知するために使用することができます。 # 注: これは http_access ルールでは効果がありません。 # これは、http_reply_access のような返答データに影響するルールで効果があります。 acl acl_name external class_name [arguments...] # externalは、external_acl_type指令によって定義された外部ヘルパークラスによる、ACLの検査を # 行います。
# 使用例:
# acl myexample dst_as 1241
# acl password proxy_auth 300
#acl fileupload req_mime_type -i ^multipart/form-data$
#acl javascript rep_mime_type -i ^application/x-javascript$

#
# 推奨される最小限の定義:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

TAG: http_access

定義されたアクセス・リストに基づいたアクセスの許可・拒否

HTTPポートへのアクセス:
http_access allow|deny [!]aclname .....

デフォルト値における注意:

"access"ラインを記述しなかった場合、デフォルトではすべてのリクエストを拒否します。

"access"ラインのどれともマッチしなかった場合、最後のラインの反対の動作をします。
例えば最後のラインが拒否の定義であったなら、デフォルトはその反対の許可となります。
反対に最後のラインが許可を定義していた場合、デフォルトはその反対の拒否となります。
このような理由から、最後の行で"deny all"や""deny all"を定義するのは、不要な混乱を回避するための良いアイデアです。
Default:
http_access deny all

推奨される最小限の定義:
# localhostからのcachemgrアクセスを許可してください。
# cache_peer_access proxy.robata.org deny subnet1
http_access allow manager localhost
http_access deny manager
# localhostからのpurgeリクエストを許可してください。
http_access allow purge localhost
http_access deny purge
# 不明なポートへのアクセスを拒否してください。
http_access deny !Safe_ports
# SSLポート以外からの接続を拒否してください。
http_access deny CONNECT !SSL_ports

# 私たちはProxyサーバ上で動いているWebアプリケーションを保護するために以下のコメントを外す
# ことを強く推奨します。これによって"localhost"上のローカルユーザからのproxy経由のアクセスを
# 拒否することができます。
#http_access deny to_localhost

# あなたのクライアントからのアクセスを許可するためのルールをここで挿入します
# あなたのローカル・ネットワークからのアクセスを許可する参考のルール。 あなたの内部のネット
# ワークに合わせてリストする事でブラウジングが許可されます。
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks
http_access allow localhost

# そして、最後に、このproxyへのすべてのアクセスを否定。
http_access deny all

TAG: http_reply_access

クライアント・リクエストへの返答を許可してください。これはhttp_accessに補足ルールです。

http_reply_access allow|deny [!] aclname ...

注意: アクセス・ラインがない場合、デフォルトはすべての返答を許可します。

アクセス・ラインのどれもマッチを引き起こさない場合、最後のラインの反対のルールが適用されます。
Default:
http_reply_access allow all


# 推奨する最小限の設定:
#
# あなたのルールを以下に記しなさい。
#
# そして最後にデフォルトで全てを許可する。
http_reply_access allow all

TAG: icp_access

定義されたアクセス・リストに基づき、ICPポートへのアクセスの許可か拒否します。

icp_access allow|deny [!]aclname .....

詳細に関しては、http_access を参照してください。
Default:
# icp_access deny all
# すべてのICP質問を許可します。
icp_access allow all

TAG: miss_access

# 親の代わりとして、あなたのSquidを兄弟とし使用することをあなたの隣接キャッシュに強いるため
# に使用してください。
# 例えば:
acl localclients src 172.16.0.0/16
miss_access allow localclients
miss_access deny !localclients

とした場合、ローカルクライアントだけがMISSでも取得でき、それ以外はHITの場合のみ取得できます。
デフォルトでは、http_accessのルールをパスしたクライアントならば、MISSの場合でも取得できるようになっています。
Default:
miss_access allow all

TAG: cache_peer_access

'cache_peer_domain' に似ていますが、しかしACLの使用により多くの柔軟性が与えられています。

cache_peer_access cache-host allow|deny [!]aclname

この文法は、ACLのリストとともに 'http_access' と同じです。 'http_access' の部分のコメントを参照するか、SquidのFAQを見て下さい。( http://squid.robata.org/faq_10.html
Default:
none

TAG: ident_lookup_access

ident(RFC 931)検査が、もし一致すれば、このリクエストのために実行されるACLのリスト。例えば、主なユーザ環境がMacやPCでなくUnixを使用しているなら、ident検査を常に実行することを決めるかもしれません。 デフォルトでは、ident検査は任意のリクエストのために実行されません。

特定のクライアント・アドレス用のident検査を可能にするなら、以下の例に従ってください:

acl ident_aware_hosts src 198.168.1.0/255.255.255.0
ident_lookup_access allow ident_aware_hosts
ident_lookup_access deny all

srcタイプACLだけがサポートされてます。 src_domain ACLでも場合によっては働くかもしれません。しかし、それは必ずしも正確な結果を提供するとは限らないでしょう。
Default:
ident_lookup_access deny all

TAG: tcp_outgoing_tos

リクエストしたユーザー名かソース・アドレスに基づいて、アウトゴーインウ(outgoing)の接続にマークして TOS/Diffserv値(回線の品質や帯域を制御する値)を選択することを可能にします。

tcp_outgoing_tos ds-field [!]aclname ...

例としてnormal_service_net がTOS値 0x00 で good_service_net が 0x20 を使用する例:

acl normal_service_net src 10.0.0.0/255.255.255.0
acl good_service_net src 10.0.1.0/255.255.255.0
tcp_outgoing_tos 0x00 normal_service_net 0x00
tcp_outgoing_tos 0x20 good_service_net

TOS/DSCP値は特有な重要性を持っています。 したがって、何を指定しようとしているか知っているべきです。詳細については、RFC 2474を参照してください。

TOS/DSCPは1バイト分の値(値0〜255)で、あるいはあなたのホストが持っているデフォルト値を使用します。
処理は指定された順に進み、最初に一致するラインで止まります。
Default:
none

(訳者: TOS値は、SquidのつながっているLAN環境がこの値を見るような機器で構成されている場合に有効と思われます。 即ち、SW-HUBやルータがこれに対応している必要があると思われます)

TAG: tcp_outgoing_address

リクエストしたユーザのユーザー名かソース・アドレスに基づいて出ていく(outgoing)際に異なるIPアドレスにを使うことを可能にします。

tcp_outgoing_address ipaddr [[!]aclname] ...

例として、10.0.0.0/24 からのリクエストの場合にはソースアドレスを10.1.0.1にし、
10.0.2.0/24からのリクエストの場合にはソースアドレスを10.1.0.2、それ以外の場合には
ソースアドレスを10.1.0.3とします。

acl normal_service_net src 10.0.0.0/255.255.255.0
acl good_service_net src 10.0.1.0/255.255.255.0
tcp_outgoing_address 10.0.0.1 normal_service_net
tcp_outgoing_address 10.0.0.2 good_service_net
tcp_outgoing_address 10.0.0.3

処理は指定された順に進み、最初にに一致するラインで止まります。
Default:
none

TAG: reply_body_max_size bytes allow|deny acl acl...

このオプションは、返答(reply)の最大のボディサイズをバイト数で指定します。
これは、ユーザがMP3や映画のような非常に大きなファイルをダウンロードするのを防ぐために使用することができます。
リプライヘッダーを受信したなら、reply_body_max_sizeラインは処理を行います。
その結果が"allow"であったなら、受け取った応答の最大ボディサイズは受け入れられます。
サイズは2回に渡ってチェックされます。最初にリプライヘッダーの中のcontent-lengthの値によってサイズをチェックします。 この値が許されているサイズより大きければリクエストは拒否され、このときユーザは"the request or replyis too large." というメッセージを受け取ります。 そしてリプライサイズを超えた時点でクライアントの接続はクローズされて、それまでの部分的な応答を受け取る事でしょう。

警告:
ダウンストリームキャッシュ(downstream caches)はcontent-lengthがヘッダーに無いような不完全な応答を検知する事が多分できません。その結果、それらの部分的な応答をキャッシュに貯えてしまい、ヒットのキャッシュとして配布してしまうことでしょう。 あなたがダウンストリームキャッシュを使っているならこのオプションを使ってなりません。

あなたが0(デフォルト)をこのパラメーターをセットすれば、制限はされません。
Default:
reply_body_max_size 0 allow all

管理上のパラメーター

TAG: cache_mgr

キャッシュサーバが死んだときにメールを受け取るローカルのキャッシュマネージャーのe-mailアドレスを指定。デフォルトでは、"webmaster"
Default:
cache_mgr webmaster

TAG: cache_effective_user
TAG: cache_effective_group

もしキャッシュサーバがrootのアカウントで実行されたなら、UIDとGIDを指定したものに変更して実行されます。デフォルトでは、UIDは"nobody"で、GIDは"nogroup"です。

# cache_effective_user nobody
# cache_effective_group nogroup

もしsquidが"root"としてスタートされなければ、UIDとGIDはキープされます。デフォルトではUIDはproxyに変更されます。 もしcache_effective_userを定義し、cache_effective_userを定義しなかったならSquidは、GIDとしてユーザのデフォルトグループID(passwdファイルから得られた)を使います。

squidを root から起動しなかった場合には、cache_effective_user は値は無視されGIDはデフォルトになります。しかしながら、Squidにプロセス所有者がメンバーである別のグループにそのGIDを変更させることができます。 Squid がそのとき root としてスタートしない場合には、1024未満の値にhttp_port をセットすることができないことに注意してください。
Default:
cache_effective_user proxy
cache_effective_group proxy

TAG: visible_hostname

あなたがエラー・メッセージなど中で特別なホスト名を示したい場合は、これを定義してください。そうでなければ、gethostname()の返り値が使用されるでしょう。
クラスタに多数のキャッシュを持っており、IPフォワードに関するエラーを得るならば、このセッティングを備えた個々の名前を持たせなければなりません。
Default:
none

TAG: unique_hostname

もしその時同じ「visible_hostname」をもつ複数のマシンを持っていたければフォワーディングループが見つけることができるように、あなたは、それぞれのマシンに異なる「unique_hostname」を与えなくてはいけません。

例:
# unique_hostname www-cache.foo.org
Default:
none

TAG: hostname_aliases

あなたのキャッシュが持っている他のDNS名のリスト。
Default:
none

キャッシュ登録サービスのオプション

# このセクション(任意である)は、キャッシュ・アナウンス・サービスのためのパラメーター
# を中に持ちます。このサービスは、キャッシュ階層を結合するかまたは作り出すために、キ
# ャッシュ・アドミニストレーターが互いの位置を定めるのをヘルプするのに用意されます。
#
# 'announcement'メッセージは、(UDPによって)Squidの登録サービスに送られます。
# あなたが以下の「announce_period」でそれを可能にすることがない限り、デフォルトでは
# annoucementメッセージは送られません。
#
# アナウンス・メッセージにはあなたのホストネームと以下のインフォメーションを加えたも
# のが構成ファイルには含まれます:
#
# http_port
# icp_port
# cache_mgr
#
# 最新情報は定期的に改訂されており、WEBの「http://ircache.nlanr.net/Cache/Tracker/」
# で入手可能です。

TAG: announce_period

これは、キャッシュアナウンスを送る間隔です。デフォルトは、'0' でアナウンス・メッセージを送ることは無効になっています。

あなたのキャッシュがアナウンスを有効にしたい場合には、以下のラインのコメントマーク(#)を外してください。

# announce_period 1 day
Default:
announce_period 0

TAG: announce_host
TAG: announce_file
TAG: announce_port

登録のメッセージをannounce_hostとannounce_portで指定された、ホストとポートに対して送ります。

ホスト名は、デフォルトとして「tracker.ircache.net」で、ポート番号は3131をデフォルトにしてあります。
ファイル名を与えると、アナウンスメッセージの中にファイルの内容が付加されます。
Default:
announce_host tracker.ircache.net
announce_port 3131


HTTPD -アクセラレーターのオプション

TAG: httpd_accel_host
TAG: httpd_accel_port

もしあなたがSquidをhttpdアクセラレーターとして実行させたいなら、実際のHTTPサーバのホスト名とポート番号を定義してください。
もし、IPアドレスベースのバーチャルホストのサポートを求めるのなら、"virtual"としてホスト名を指定します。 その結果、URLの中のホスト名としてリクエストを認めたところで、これはSquidにIPアドレスを使用させるでしょう。

仮想ポートのサポートを望むなら、ポートとして '0' を指定します。

注意:httpd_accel_hostを有効にするならば、キャッシュとICPを無効にしてください。もし、これらも同時に使うのであれば「httpd_accel_with_proxy」オプションをセットしてください。
Default:
# httpd_accel_port 80

TAG: httpd_accel_single_host on|off

あなたがアクセラレータとしうてとしてSquidを実行し、バックエンドのサーバが1つであるならばこれをセットできます。この場合Squidは不規則なリダイレクトやホストヘッダーであってもこのサーバに転送します。

もし多くのバックエンドサーバを持っているなら、これはoffのままにしておく。そして(hostsファイルかプライベートDNSにより)目的のバックエンドのサーバへマップしてリダイレクトする。
注意: マッピングは1対1でバックエンドサーバとドメイン名がマッピングされている必要がある。 そしてマッピングされたバックエンドがキャッシュであった場合にはそれは失敗するでしょう。

さらに redirect_rewrites_host_header を参照してください。
Default:
# httpd_accel_single_host off

TAG: httpd_accel_with_proxy on|off

あなたがSquidをアクセラレータとproxyの両方を使用したい場合、これを "on" 変更してください。
しかしながら、あなたのproxyユーザが使用するブラウザーにおいて、proxyを使用しないような設定がされていた場合に、アクセラレータの領域に到達してしまう問題があることに注意してください。
Default:
# httpd_accel_with_proxy off

TAG: httpd_accel_uses_host_header on | off

HTTP /1.1のリクエストには基本的にURLからのホストネームである "Host:" ヘッダーが含まれます。 Squidは、アクセラレータにおけるバーチャルホストのホスト名としてこれを使用します。
このとき、バーチャルホストが同じIPアドレスを使うドメインベースのバーチャルホストの場合にこれを"on"にする必要があります。

注意: Squidは、ホスト・ヘッダーの値とアクセラレータされたサーバの名前をチェックしません。 もしあなたが適切なアクセス・コントロールをセット・アップするようには注意しなければ、それは大きなセキュリティ・ホールを開くかもしれません。 私たちは、もしあなたが行っていることを確信していなければこのオプションが無効にすることを勧めます。

しかし、もし透過proxyとしてSquidを走らせるならば、あなたはこのオプションを有効にする必要があるでしょう。 さもなければ、"Host:" ヘッダーを要求するバーチャルなサーバーは、適切にキャッシュされないでしょう。
Default:
# httpd_accel_uses_host_header off

その他のさまざまな設定

TAG: accept_filter

FreeBSDの場合:
Squidにインストールする受信ソケットへの accept(2) フィルタの名前。この機能は、FreeBSDでの特有で、カーネルの支援を必要とします。

'httpready'フィルタは、HTTP要求が受け取られるまで、Squidは新しい接続による配送を遅らせます。
詳細については、accf_http(9)人ページを参照してください。
'dataready'フィルタは、Dataの処理にになるまで、Squidは新しい接続による配送を遅らせます。
詳細については、accf_dataready(9)人ページを参照してください。
Linuxの場合:
TCP_ACCEPT_DEFER(多分"TCP_DEFER_ACCEPT"の間違い)によって処理するべきあるデータがくるまで 'data'フィルタは、Squidは新しい接続による配送を遅らせます。待機する秒数を'date=N'のように指定する事もできます。 Nは秒数でデフォルトは30となっています。詳細については、man で tcp(7) のページを参照してください。
使用例:
accept_filter httpready
accept_filter data
Default:
None
訳者注:
これらの機能は、TCPにおける3ウェイハンドシェイクの処理において、クライアントから送られてくるであろう、ACKパケットのを正常に送らないで通信を始めてしまうような処理系への対策のために用意されたものと思われます。 通常3ウェイハンドシェイクでは、通信用のコネクション確立(accept状態)になるには、
SYN(クライアント) -> ACK(サーバ) -> ACK(クライアント)
という3つの手順を行うことで接続が確立されます。
しかし、ある処理系では3番目の"ACK(クライアント)"を行わずにDataを送信してしまうケースがあるようです。 この場合、正規のTCPのハンドシェイクに準拠しないため、サーバではいつまでもクライアントからのACKを待ってしまい、最終的にはタイムアウトとなる事でしょう。
本オプションはそのような処理系であっても、Dataパケットが来た段階でaccept状態となることで通信を確立できるようにするものと思われます。(試していないので想像です)
なお、FreeBSDではカーネルでこの処理を有効にしている必要があります。 また、Accept状態になるタイミングには、Dataパケット以外にHTTPリクエストまで遅延させる方法があるようです。

TAG: dns_testnames

DNSのテストは、最初のサイトの検索に成功すれば終了します。

このテストは -D コマンドライン・オプションで無効にすることができます。
Default:
# dns_testnames netscape.com internic.net nlanr.net microsoft.com

TAG: logfile_rotate

'squid -k rotate' をタイプすることで指定した数のログファイルをローテーションします。
デフォルトは 10 で、この場合0から9の拡張子を持ったファイルが作成されます。
0を指定するとログのローテーションは行われません。 
しかし、ログファイルは一度クローズして再度オープンします。 ローテーションのシグナルを送る前に、これによってあなた自身がログファイを別の名前でリネームすることができるでしょう。

注意: コマンド 'squid -k rotate' は通常、実行されているsquidのプロセスに、USR1 のシグナルを送ります。 ある状況(例えば、非同期I/OのLinux)では'squid -k rotate' での USR1 のシグナルは他の目的に使われてしまいます。 そのような場合には、'squid -k rotate' の代わりに、'kill -USR1 <pid>' を使うのが良いでしょう。

注意2: デビアン/Linuxについては、別の外部の方法でlogfile-ローテーションを行っているので、logfile_rotateのデフォルトは0です。
Default:
# logfile_rotate 0

TAG: append_domain

ドットなしのホスト名にローカルなドメイン名を付加します。付加するドメイン名は、ピリオドで始らなくてはいけません。

今日、インターネットにおいてドットのない名前を使っているのはトップドメインだけです。
したがって、これをセットすると、いくつかのインターネット・サイトは利用不可能になるかもしれません。

例:
# append_domain .yourdomain.com
Default:
# none

TAG: tcp_recv_bufsize (byte)

TCPソケットに於けるレシーブバッファのサイズを指定します。 たぶん、カーネルのデフォルトを変えるよりこの方が簡単でしょう。サイズを0にすると、カーネルのデフォルトのバッファサイズが使われます。
Default:
# tcp_recv_bufsize 0 bytes

TAG: err_html_text

エラーメッセージにHTMLテキストを付加します。ここにはあなたのアドミニストレーター・アドレスの"mailto"、やあなたの組織へのウェブ・ページへのリンクのURLなどを指定できます。

あなたの独自のエラーメッセージにこれを含ませるには、エラーテンプレイトを書き直すことが必要です。 (エラーテンプレイトは"errors"ディレクトリの下から探されます。 : etc\errors )
エラーテンプレイト中の"err_html_text"で指定したテキストに %L のタグを差し込んでください。
Default:
# none

TAG: deny_info

# 使い方: deny_info err_page_name acl
# または deny_info http://... acl
#
# 例: deny_info ERR_CUSTOM_ACCESS_DENIED bad_guys

このタグは、'http_access'ルールをパスしなかったリクエストに指定したエラーページを返します。
1つのACLしかない場合にはしばしば http_access のチェックの結果エラーがでる事でしょう。
もし そのACLに対して 'deny_info' の行が存在するなら、Squidは対応するエラーページを表示する事でしょう。

エラーページを作成した場合は、Squidのインストールディレクトリの下の errors/ ディレクトリにページを保存してください。 (RPMでインストールした場合、/usr/loca/squid/share/の下の各言語ディレクトリ以下)

代わりに、あなたはエラーのURLを指定することも出来ます。 ブラウザーは、指定されたURLへの転送(302)されるでしょう。
転送URLの中の %s は、要求されたURLと取り替えられるでしょう。

代わりに、TCP_RESETの指定によりTCP接続をリセットするようにSquidに命じることもできます。
Default:
# none

TAG: memory_pools on | off

もしセットされれば、Squidは割り付けられた(しかし未使用の)メモリのプールを将来の使用の為に利用可能にしておくでしょう。 あなたのシステムが高性能でmallocライブラリがSquidのルーチンより技術的に上であると信られるなら、これを不能にしてください。

もしセットしたなら、Squidは、将来、利用するかもしれないメモリのためのプール(また利用はしないが)を行います。もしメモリーがあなたのシステムにとって高価でかつ、あなたがSquidのルーティンよりも、システムのmallocライブラリーのほうが性能で凌駕すると信ずれば、これを無効にして下さい。
Default:
# memory_pools on

TAG: memory_pools_limit (byte)

# 'memory_polls'がonの場合のみ利用できます。
# memory_pools_limit は 50MB

もし0でない値にセットされたなら、Squidは、メモリー・プールで割り当てられたメモリーの指定された限界を保持し続けるでしょう。 あなたのmallocライブラリによって、free()リクエストによってこの限界まで扱われるでしょう。
Squidはあらかじめメモリを割り付けません、
あなたのシステム構成がより少ないメモリーを使っている場合には、memory_pools_limiによって合理的な限界の値をセットするほうが安全でしょう。

もし何もセットしない(デフォルト)か0をセットした場合、Squidは可能な限りのメモリをすべて維持するでしょう。 すなわち、保管のために使用された合計の量のメモリに制限はありません。

メモリ割り当て最適化を無効にするためには、memory_pools_limitを0にするのではなく、memory_pools を offにしてください。

リミットがチェックされる場合、メモリ・プールを維持するためのオーバーヘッドは考慮に入れられません。このオーバーヘッドは維持される1つのオブジェクト当たり4バイト近くです。 しかしながらmallocライブラリのスラッシングのために実際にセーブできるメモリのプールは縮小するかもしれません。
Default:
# none

TAG: forwarded_for on | off

SquidがHTTPリクエストの中にあなたのクライアントシステムのIPアドレスや名前を含めるかを指定します。 デフォルトでは以下のようなリクエストが相手に送られます。

# X-Forwarded-For: 192.168.1.2

もしこれを無効にすると次のようになります。
# X-Forwarded-For: unknown
Default:
# forwarded_for on

TAG: log_icp_queries on|off

セットされたなら、ICPリクエストは、access.logにログ記入されます。もしあなたが、ICPのロード高速化したり、ログ分析を簡単にしたいならこれを無効にするのも良いでしょう。
Default:
# log_icp_queries on

TAG: icp_hit_stale on|off

もしあなたが新鮮でないキャッシュ・オブジェクトのためのICP_ HITを返したければ、このオプションを 'on'.にセットして下さい。 もしあなたが他の管理ドメインのキャッシュとの兄弟姉妹関係を持っていれば、これは、'off' であるべきです。もし兄弟姉妹関係のキャッシュがあなたが制御している1つだけなら、これを"on"にしておいてもOKです。

'on'にセットした場合、 cache_peerラインにおいて"allow-miss"オプションを使用して兄弟キャッシュに接続してください。
Default:
# icp_hit_stale off

TAG: minimum_direct_hops

pingするサイトがこのポップ数よりも小さいところにあるならば、ダイレクトリICMPのpingを行います。
Default:
# minimum_direct_hops 4

TAG: minimum_direct_rtt

ICMPのpingを使用する場合は、これより大きなrttミリセカンドの遠方サイトの場合に直接取って来ることを指図してください。
Default:
# minimum_direct_rtt 400

TAG: cachemgr_passwd

キャッシュマネージャで使うパスワードを設定します。

# 使い方: cachemgr_passwd password action action ...
actionとして有効なのもの(完全なリストに関してキャッシュ・マネージャー・メニューを参照する):
# 5min
# 60min
# asndb
# authenticator
# cbdata
# client_list
# comm_incoming
# config *
# counters
# delay
# digest_stats
# dns
# events
# filedescriptors
# fqdncache
# histograms
# http_headers
# info
# io
# ipcache
# mem
# menu
# netdb
# non_peers
# objects
# offline_toggle *
# pconn
# peer_select
# redirector
# refresh
# server_list
# shutdown *
# store_digest
# storedir
# utilization
# via_headers
# vm_objects

*は、有効なパスワードなしでは実行されなされないものを示します。その他は、ここでリストされなくても実行できます。

actionを無効にするには、パスワードとして"disable"をセットしてください。パスワードなしで実行させるのであれば、パスワードとして"none"を設定してください。

キーワードとして"all"を使うとすべてのactionに同じパスワードを使えます。

例:
# cachemgr_passwd secret shutdown
# cachemgr_passwd lesssssssecret info stats/object
# cachemgr_passwd disable all
Default:
# none

TAG: store_avg_object_size (kbyte)

あなたのキャッシュが保持することができるオブジェクトの、概算の平均オブジェクト・サイズを指定します。doc/Release-Notes-1.1.txt.を参照してください。 デフォルトは13KBです。
Default:
# store_avg_object_size 13 KB

TAG: store_object_per_bucket

ストアーハッシュ・テーブルでのバケットあたりのオブジェクト数の目標です。この値を低くすることは、バケットおよびまたストレージ・メンテナンス・レートの数が増えることになります。デフォルトは20です。
Default:
# store_objects_per_bucket 20

TAG: client_db on|off

あなたがクライアントごとの集まる統計を無効ににしたい場合は、client_dbを"off"にしてください。
Default:
# client_db on

TAG: netdb_low
TAG: netdb_high

CMP測定データ・ベース用の上限と下限の水準。 これらはパーセントではなくカウントです。 デフォルトでは900から1000です。 上限まで到達すると、下限のマークまで到達するまで、データ・ベース・エントリーが削除されるでしょう。
Default:
# netdb_low 900
# netdb_high 1000

TAG: netdb_ping_period

サイトの計測のための最低間隔です。 同一のネットワークで連続のpingにおいてこれだけの遅れを考慮します。 デフォルトは5分です。
Default:
# netdb_ping_period 5 minutes

TAG: query_icmp on | off

もしあなたがあなたの仲間にICP応答でICMPデータを含むようにと頼むなら、このオプションを有効にして下さい。

あなたの仲間のICPサーバが、Squidコンパイル時に"--enable-icmp"で構成されたなら、その仲間は、それが受け取るURLの起源サーバー・サイトにICMPのpingを送るでしょう。もしあなたがその時このオプションを可能にすれば、その仲間からのICP答えは、ICMPデータ(利用できれば)を含むでしょう。それから、親キャッシュを選ぶときに、Squidは、最小のRTTが起源サーバーへの親を選ぶでしょう。これが起こるときに、access.logの階層フィールドは、「CLOSEST_PARENT_MISS」になるでしょう。このオプションは、デフォルトでoffです。
Default:
# query_icmp off

TAG: test_reachability on | off

もし"on"にすると、目標のホストがICMPデータベースになかRTTが0であった場合に、返答はICP_MISSの代わりにICP_MISS_NOFETCHを返します。
Default:
# test_reachability off

TAG: buffered_logs on | off

いくつかのログファイル( cache.log )はstdio関数にてバッファーを使って/または使わずに記録されます。デフォルトではバッファーなしになっていますが、バッファーを使うことで僅かながらスピードアップして記録できるでしょう。
Default:
# buffered_logs off

TAG: reload_into_ims on | off

このオプションを有効にした場合、クライアントが nocache(ノーキャッシュ) または、'reload'(再ロード)リクエストだった場合に、If-Modified-Sinceリクエストに変えられます。これはHTTPのスタンダード規約に違反します。 これを有効にする事にする事は、あなたの責任で行ってください。
Default:
# reload_into_ims off

TAG: always_direct

# 使い方: always_direct allow|deny [!]aclname ....

ここであなたはオリジナルサーバへ何時でもダイレクトにフォワード要求するかをACLエレメントとともに指定できます。例として、ローカルサーバへの要求を何時でもダイレクトで行う場合は以下のように指定します:

acl local-servers dstdmain my.domain.net
always_direct allow local-servers

何時でも、FTP要求をダイレクトにするには、

acl FTP portto FTP
always_direct allow FTP

注意: 'never_direct'という逆の機能のオプションがあります。あなたは、'always_direct deny foo'が'never_direct allow foo'と同じことを知っている必要があります。 あなたが必要なら、denyルールを使った後に、それを排斥する追加のルールを指定することもできます。例として:

# acl local-external dstdomain external.foo.net
# acl local-servers dstdomain foo.net
# always_direct deny local-external
# always_direct allow local-servers

このオプションはV1.1にあった local-domain や local-ip のように機能します。
Default:
# none

TAG: never_direct

# 使い方: never_direct allow|deny [!]aclname ....

never_firectは always_direct の逆の機能です。 まず、always_direct の機能について読んで下さい。
あなたは、'never_direct' でオリジナルサーバへ決してフォワードさせたくないリクエストをACLエレメントを使って明示できます。例えば、ローカルドメイン以外へのすべての要求をproxyを経由して行うなら以下のような設定になります。
acl local-servers dstdmain domain.net
acl all src 0.0.0.0/0.0.0.0
never_direct deny local-servers
never_direct allow all
また、Squidがファイヤーウォールの内側にあってさらにそこがイントラネットサーバの場所ならば、以下のような設定もできます。

acl local-intranet dstdmain foo.net
acl local-externet dstdmain externet.foo.net
always_diresct deny local-externet
always_diresct allow local-intranet
never_direct allow all
このオプションはV1.1における inside_firewall と firewall_ip と同等です。
Default:
# none

TAG: header_access

使い方: header_access header_name allow|deny [!]aclname ...
警告:これを使うことはHTTPの標準に違反します。 有効にすることで問題を引き起こした場合の責任をあなたは負ってください。

このオプションは古い'anonymize_headers'やそれより更に古い'http_anonymizer'オプションよりも遙かにヘッダーを整形でします。 この新しい方法は、各ヘッダーのACLのリストを作成することで、ヘッダーを細切れにすることができます。 

ヘッダー名のための既知のヘッダーを指定することができます。 その他のヘッダーは'Other'として分類し直されます。 さらに、'All' ですべてのヘッダーを参照することができます。

例えば古い'http_anonymizer standard'オプションと同じ振る舞いをさせるなら、次のように指定します:
header_access From deny all
header_access Referer deny all
header_access Server deny all
header_access User-Agent deny all
header_access WWW-Authenticate deny all
header_access Link deny all

あるいは古い'http_anonymizer paranoid'オプションの機能なら、次のように指定します:
header_access Allow allow all
header_access Authorization allow all
header_access WWW-Authenticate allow all
header_access Cache-Control allow all
header_access Content-Encoding allow all
header_access Content-Length allow all
header_access Content-Type allow all
header_access Date allow all
header_access Expires allow all
header_access Host allow all
header_access If-Modified-Since allow all
header_access Last-Modified allow all
header_access Location allow all
header_access Pragma allow all
header_access Accept allow all
header_access Accept-Charset allow all
header_access Accept-Encoding allow all
header_access Accept-Language allow all
header_access Content-Language allow all
header_access Mime-Version allow all
header_access Retry-After allow all
header_access Title allow all
header_access Connection allow all
header_access Proxy-Connection allow all
header_access All deny all

デフォルトではすべて許されています。 
Default:
# none

TAG: header_replace

使い方:header_replace header_name message

例: header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)

このオプションは、あなたが上記のheader_accessで無効にしたヘッダーの内容を、ある固定ストリングに取り替えることによりヘッダーの内容を変更することを可能にします。
これは古い fake_user_agent オプションの代わりです。
Default:
# none

TAG: icon_directory

アイコンが格納されているディレクトリを指定します。
普通は、/usr/share/squid/icons に保存されています。
Default:
# icon_directory /usr/share/squid/icons

TAG: error_directory

もしあなたが、あなたの言語圏に合わせたエラーファイルのテンプレートを作りたいなら、デフォルトのエラーファイルを元にして、別のディレクトリのコピーしてからこのパラメータでそれを指定します。
Default:
# error_directory /usr/share/squid/errors/English

TAG: maximum_single_addr_tries

これは、1つのアドレスだけを持っているホストのために試みる最大の接続数をセットします。(複合のアドレスのホストのの場合は、各アドレスは1回試みられます)

デフォルト値は3回のです。(推奨されていないが)最大は255回です。指定が10を越える値にセットされる場合、警告メッセージが生成されるでしょう。
Default:
# maximum_single_addr_tries 3

TAG: snmp_port

SquidはSNMPによってサーバ統計およびステータス情報を利用させる事ができます。 デフォルトではその為のポートとして3401を開きます。 あなたがSNMPを使用させたくない場合は、これを'0' にセットしてください。

注意: Debian/Linuxにおいては、デフォルトが0です。利用可能にするために3401にセットする必要があります。
Default:
# snmp_port 0

TAG: snmp_access

SNMPポートへのアクセスを許可・拒否します。

エージェントへののアクセスはすべてデフォルトで拒否されています。

使い方: snmp_access allow|deny [!]aclname ...
例:
# snmp_access allow snmppublic localhost
# snmp_access deny all
Default:
# snmp_access deny all

TAG: snmp_incoming_address
TAG: snmp_outgoing_address

上の方に似たよう'udp_incoming_address' がある。しかしそれはSNMPポートに対するものではない。
snmp_incoming_address は、SNMPエージェントからメッセージを受け取るSNMPソケット用に使用されます。
snmp_outgoing_address はSNMPエージェントに返すSNMPパケットのために使用されます。

デフォルトのsnmp_incoming_address(0.0.0.0) はすべての利用可能なネットワークインターフェイス上でリスン(聞く)用意がされます。

そのとき snmp_outgoing_addressが255.255.255.255(デフォルト)にセットされる場合、それはsnmp_incoming_addressと同じソケットを使用するでしょう。 このSquidがSNMPのリスン(聞く)アドレスとは別のアドレスを使用して、あなたがSNMP返答を送りたい場合は、これを変更してください。

注意: 両方のアドレスともポート3401を使用するので、snmp_incoming_address とsnmp_outgoing_address が同じアドレス持つことができません。
Default:
# snmp_incoming_address 0.0.0.0
# snmp_outgoing_address 255.255.255.255


TAG: as_whois_server

WHOISサーバへのクエリの為のAS番号。
注意: AS番号は、すべてのリクエストのためにではなくSquidが開始の時にだけ尋ねられます。
Default:
# as_whois_server whois.ra.net
# as_whois_server whois.ra.net

TAG: wccp_router

このオプションを使うと、Squidの為にWCCPの"ホーム"ルータを定義できます。 'wccp_router'を0.0.0.0(デフォルト)にセットするとWCCPを無効にします。
Default:
# wccp_router 0.0.0.0

TAG: wccp_version

何人かのユーザによれば、 Cisco IOS 11.2 だけがWCCPバージョン3をサポートしています。 もしあなたがその他のバージョンの IOS を使っているなら バージョン3 に変更してください。
Default:
wccp_version 4

TAG: wccp_incoming_address
TAG: wccp_outgoing_address

wccp_incoming_address

1つのインターフェース上で受け取られるWCCPメッセージを必要なとき、このオプションを使ってください。もしどれだけのインターフェースを持っているか判らない場合には、このオプションを使ってはいけません。

wccp_outgoing_address

1つのインターフェース上で発信するWCCPメッセージを必要なとき、このオプションを使ってください。もしどれだけのインターフェースを持っているか判らない場合には、このオプションを使ってはいけません。

デフォルトではどんなアドレスも振られていません。
注意: 両方ともポート2048を使用するので、wccp_incoming_address と wccp_outgoing_address は同じ値を持つことができません。
Default:
# wccp_incoming_address 0.0.0.0
# wccp_outgoing_address 255.255.255.255

DELAY POOLのパラメータ (以下のオプションは、コンパイルの際にDELAY_POOLSを付けた場合に有効)-----------------------------------------------------------------------------

TAG: delay_pools

これは、使用されるdelay pools(ディレイ プール)の数を表わします。 例えば、もしあなたがクラス2のディレイプールを1つと、クラス3のディレイプールを1つを持っているなら、あなたの持っているディレイプールは合計2つです。
Default:
# delay_pools 0


TAG: delay_class

これは、ディレイプールのクラスを定義します。各ディレイプールにはそれぞれ1行のdelay_classのラインがあるに違いありません。例えば、クラス2を1つとクラス3を1つである2つのディレイプールを定義するとき、セッティングはつぎのようになる事でしょう:
例:
# delay_pools 2 # 2 delay pools
# delay_class 1 2 # pool 1 is a class 2 pool
# delay_class 2 3 # pool 2 is a class 3 pool
ディレイクラスとは:
class 1
すべては、1つの総計(single aggregate)バケットによって制限されています。
class 2
すべては、IPアドレスの25〜32ビット(256個)によって選ばれた「個々」のバケットか、1つの総計バケットによっても制限されています。
class 3
すべては、IPアドレスの17〜24ビットによって選ばれた「個々」のバケットか、1つの総計バケットによっても制限されています。
注意: IPアドレスが a.b.c.d だったとき、
-> ビット25〜32は "d" です
-> ビット17〜24は "c" です。
-> ビット17〜32は "c * 256 + d" です。
Default:
# none

TAG: delay_access

これはリクエストがどのディレイプールに落ち込むか決めるために使用されます。 つまり、リクエストが最初のディレイプールにマッチすると、常にディレイプール番号1に落ち込みそれ以上のチェックはされません。そうでなければ残りのプール番号の順にチェックされていきます。 
例えば、大きなデータを扱うクライアント(some_big_clients)にはディレイプールの1を、小さいデータのクライアント(lotsa_little_clients)にはディレイプール2といったように:
例:
delay_access 1 allow some_big_clients
delay_access 1 deny all
delay_access 2 allow lotsa_little_clients
delay_access 2 deny all
Default:
# delay_pools 0

TAG: delay_parameters

これは、ディレイプール用のパラメーターを定義します。各ディレイプールは"バケット"を持っており、それらは delay_class の記述と関連します。クラス1ディレイプールについては、シンタックスは次のとおりです:
delay_parameters pool aggregate
クラス2のディレイプールの場合:
delay_parameters pool aggregate individual
クラス3のディレイプールの場合:
delay_parameters pool aggregate network individual
変数は:
pool プール番号 - つまり、delay_class や delay_pools で使われた 1からの番号
aggregate 総計パケット(aggregate bucket)用の"ディレイパラメータ"(クラス1,2,3)
individual 個々のバケット(individual bucket)用の"ディレイパラメータ"(クラス2,3)
network ネットワーク・バケット(network bucket)用の"ディレイパラメータ"(クラス3)
ディレイパラメータは、restore/maximum の1ペアで書かれます。restore はバケットに入れられる毎秒あたりのバイト数(ビット数ではありません)。そしてmaximum はどんな時においてもバケットに入りうる最大のバイト数です。
例えば、ディレイプールが上記のようにクラス2のディレイプールであったとき、全体のリミットはなしで、各ホストを64kbps(プラス諸経費)に制限するために指定するならラインは次のとおりです:
delay_parameters 1 -1/-1 8000/8000
注意: -1の指定は"制限なし"の意味です。
また、ディレイプール2が上記の例のようなクラス3のディレイプールで、あなたがWebから大きなデータのダウンロードなどでネットワークが著しく遅くならないように、全体の合計を256kbを限界にして、個々のホストを64kbとして、ネットワークを64kbを限界として個々のホストに4800bpsとしたいなら:
delay_parameters 2 32000/32000 8000/8000 600/8000
各ディレイプールの1行にはdelay_parametersラインがあるに違いありません。
Default:
# none

TAG: delay_initial_bucket_level (パーセント, 0-100)

inital bucket のパーセントは、Squidがスタートするかリコンフィグされた時、または最初にホストがバケット(クラス2とクラス3、個々(individual)のバケットとネットワークによるバケットのアクセス)にアクセスしたときに各バケットにどれだけ入れられるか決めるのに使われます。
Default:
# delay_initial_bucket_level 50

TAG: incoming_icp_average
TAG: incoming_http_average
TAG: incoming_dns_average
TAG: min_icp_poll_cnt
TAG: min_dns_poll_cnt
TAG: min_http_poll_cnt

私は、あなたがこれを読んでいるとは信じることができません。正気ですか? もし comm_select.c の中のアルゴリズムを最初に理解していなければ、これらを調節することに関して深く考えないでください!
Default:
# incoming_icp_average 6
# incoming_http_average 4
# incoming_dns_average 4
# min_icp_poll_cnt 8
# min_dns_poll_cnt 8
# min_http_poll_cnt 8

TAG: max_open_disk_fds

ディスク・ファイル・ディスクリプタとして量を越えるものが開いている場合、I/Oボトルネックを回避するために、Squidはオンディスク・キャッシュをバイパスするかもしれません。
0 を指定した場合は限界はありません。
Default:
# max_open_disk_fds 0

TAG: offline_mode

このオプションを有効にすると、Squidは、貯えられたオブジェクトを有効にしません。
Default:
# offline_mode off

TAG: uri_whitespace

URLに含まれる空白をどのように処置するかのオプションす。
オプションとしては、

strip: 余白文字はURLから抜き取ります。これはRFC2396によって勧められた振る舞いです

deny: 空白を許可しません。 "Invalid Request" をユーザに返します。

allow: URIに空白を許可し、そのままで渡します。 注意: もしリダイレクタープログラムを使っているなら、空白はそのままリダイレクターに渡されます。

encode: 空白の指定は許可しますが、空白はRFC1738に基づき変換されます。この書き換えは、HTTP/1.1においてRFC違反と見なされるかもしれません。

chop: そのリクエストは許可されますが、URIは第1の余白で切られます。これもRFC違反となる事でしょう。
Default:
# uri_whitespace strip

TAG: broken_posts

ACLリストの要素。もし一致した場合SquidはPUT/POSTリクエストのボディの最後にCR/LFペアを付けて送信します。

幾つかのHTTPサーバーでは、PUT/POSTの実装を間違え、WWWクライアントから余分なCR/LFペアが送られてくる事を期待しています。

この問題についてのRFC 2068のセクション4.1から引用:
注意: あるバグの多いHTTP/1.0クライアントの実装では、POSTリクエストの後に余分なCR/LFのを生成します。 BNFによって明示的に禁止されるものを再び述べるますが、HTTP/1.1クライアントは、余分なCR/LFをリクエストの序文をつけてはなりません。
#例:
# acl buggy_server url_regex ^http://....
# broken_posts allow buggy_server
#
Default:
# none

TAG: mcast_miss_addr

注意:このオプションを使うためには、Squidが -DMULTICAST_MISS_STREAM オプションを使ってリビルド(再コンパイル)されている必要があります。

あなたがこのオプションを有効にすれば、すべての"cache miss" URLが指定されたマルチキャスト・アドレス上で発信されるでしょう。

もしあなたがこのオプションによって何が起こるか理解できていないなら、絶対にこれを有効にしないでください。
Default:
# mcast_miss_addr 255.255.255.255

TAG: mcast_miss_ttl

注意:このオプションを使うためには、Squidが -DMULTICAST_MISS_TTL オプションを使ってリビルド(再コンパイル)されている必要があります。

これはキャッシュミス(cache miss)URLからマルチキャスティングが有効になっているとき、マルチキャストされたパケットが生存する時間の値です。デフォルトによって、これは'site scope'(サイト範囲)。つまり16)にセットされます。
Default:
# mcast_miss_ttl 16

TAG: mcast_miss_port

注意:このオプションを使うためには、Squidが -DMULTICAST_MISS_STREAM オプションを使ってリビルド(再コンパイル)されている必要があります。

これは'mcast_miss_addr'と共に使用されるポート番号です。
Default:
# mcast_miss_port 3135

TAG: mcast_miss_encode_key

注意:このオプションを使うためには、Squidが -DMULTICAST_MISS_STREAM オプションを使ってリビルド(再コンパイル)されている必要があります。

マルチキャストのキャッシュミスで送られるURLが暗号化されます。その際のこれは暗号化キーです。
Default:
# mcast_miss_encode_key XXXXXXXXXXXXXXXX

TAG: nonhierarchical_direct

デフォルトでは、Squidは起源サーバーに直接どんな階層的でないリクエスト(hierarchy_stoplistと一致して、貯えることができるリクエスト・タイプ)も送るでしょう。
もしあなたがこれを off にセットすれば、Squidはこれらのリクエストを親に送ることを好むでしょう。
Default:
# nonhierarchical_direct on

TAG: prefer_direct

通常はSquidは、ほとんどのリクエストのために親を使用しようとします。あなたがある理由によって、最初にダイレクトによる接続を試み、ダイレクトが失敗したときに親を使いたいならこれ on をセットしてください。

「nonhierarchical_direct off」と「prefer_direct on」を組み合わせることによって、ダイレクトに行くことが失敗する場合に、バックアップ・パスとして親を使用するためにSquidをセットアップすることができます。
Default:
# prefer_direct off

TAG: strip_query_terms

デフォルトによって、Squidはロギングの前に要求されたURLでのクエリ(質問用語)を剥ぎます。これはあなたのユーザのプライバシーを保護します。
Default:
# strip_query_terms on

TAG: coredump_dir

デフォルトで、Squidは開始されたディレクトリの中にコアダンプを残します。あなたが存在するディレクトリーを 'coredump_dir' に指定するばSquidはそのディレクトリにコアダンプを残すようにするでしょう。
Default:
# coredump_dir none

TAG: redirector_bypass

これが 'on' である場合、リダイレクターがすべて使用中の場合、リクエストはリダイレクターを通り抜けません。 これが 'off' で、リダイレクター・キューが大きくなりすぎる場合、Squid はFATALエラーで出て、リダイレクターの数を増加するようにあなたに依頼するでしょう。
リダイレクターがあなたのキャッシュに入れるシステムに重大でない場合、これを有効にするべきです。 
あなたがアクセス・コントロールに対してリダイレクターを使用し、あなたがこのオプションを可能にすれば、ユーザはそれらが要求することを許されてはならないページにアクセスできてしまいます。
Default:
# redirector_bypass off

TAG: ignore_unknown_nameservers

デフォルトでSquidは、それらが送られるのと同じIPアドレスからDNSレスポンスが受け取られることをチェックします。それらが一致しない場合、Squidはレスポンスを無視し、cache.log に警告メッセージを書きます。 'off' にこのオプションをセットすることにより未知のネーム・サーバからの応答を許可することができます。
Default:
# ignore_unknown_nameservers on

TAG: digest_generation

これは、サーバーがその内容のキャッシュダイジェストを生成するかどうかコントロールします。デフォルトによって、Squidが USE_CACHE_DIGESTS を定義してコンパイルされてる場合、キャッシュダイジェストの生成は可能になります。
Default:
# digest_generation on

TAG: digest_bits_per_entry

これは与えられたHTTPメソッドおよびURL(公開暗号キー)コンビネーションへの要約エントリーに関係付けられたサーバーのキャッシュダイジェストのビット数です。デフォルトは5です。
Default:
# digest_bits_per_entry 5

TAG: digest_rebuild_period (seconds)

これはキャッシュダイジェストのリビルド間の秒の数です。
Default:
# digest_rebuild_period 1 hour

TAG: digest_rewrite_period (seconds)

これはディスクへのキャッシュダイジェスト書き込みの間の秒の数です。
Default:
# digest_rewrite_period 1 hour

TAG: digest_swapout_chunk_size (bytes)

これは一度にディスクに書くキャッシュダイジェストのバイトの数です。それはデフォルトで4096バイト(4KB)、Squidのスワップページになります。
Default:
# digest_swapout_chunk_size 4096 bytes

TAG: digest_rebuild_chunk_percentage (percent, 0-100)

これは一度に走査されるキャッシュダイジェストのパーセンテージです。デフォルトによって、それはキャッシュ要約の10%にセットされます。
Default:
# digest_rebuild_chunk_percentage 10

TAG: chroot

初期化時にSquidにchroot()を行わせるためにこれを使用してください。これは、さらにSquidに初期化後にroot特権から低下させます。これは、例えば、1024未満でHTTPポートを使用し、再構成しようとすれば、エラーとなるということを意味します。
Default:
# none

TAG: client_persistent_connections
TAG: server_persistent_connections

クライアントとサーバーのパーシステント(頑固な)コネクションサポート。デフォルトによって、Squidはそのクライアントおよびサーバーと共にパーシステントコネクション(許可された時)を使用します。クライアントおよび(または)サーバーでパーシステントコネクションを不能にするこれらのオプションを使用してください。
Default:
# client_persistent_connections on
# server_persistent_connections on

TAG: pipeline_prefetch

より近くの proxyされていない環境のそれとマッチするためにパイプラインで送られた依頼のパフォーマンスをブーストするために、Squidはパイプラインからパラレルで最大2回の依頼を取って来るよう試みることができます。

帯域幅の管理およびアクセスのロギングのためのデフォルトは off です。
Default:
# pipeline_prefetch off

TAG: extension_methods

Squid は標準化されたHTTPリクエストメソッドのことは知っています。 あなたは、20個までの追加の"extension(拡張)"メソッドをここで加えることができます。
Default:
# none

TAG: request_entities

Squidは、リクエスト・エンティティーで「GET」と「HEAD」リクエストにHTTP標準で未定義であるのものが存在すると、明示的に禁じられていなくてもこのようなリクエストを却下するために、履行を拒否します。

このディレクティブをセットすると、あなたがクライアントからこのようなGETやHEADのリクエストを送れるようにするかを指定できます。
Default:
# request_entities off

TAG: high_response_time_warning (msec)

もしone-minute median response time がこの値を超過したなら、Squidは管理者の注意を得るためにレベル0のデバックレベルでWARNIBGを印刷します。値はミリセカンドです。

このディレクティブをセットすると、あなたがクライアントからこのようなGETやHEADのリクエストを送れるようにするかを指定できます。
Default:
# high_response_time_warning 0

TAG: high_page_fault_warning

もし one-minute average page fault rate がこの値を超過したなら、Squidは管理者の注意を得るためにレベル0のデバックレベルでWARNIBGを印刷します。値はミリセカンドです。

このディレクティブをセットすると、あなたがクライアントからこのようなGETやHEADのリクエストを送れるようにするかを指定できます。
Default:
# high_page_fault_warning 0

TAG: high_memory_warning

もし memory usage がこの値を超過したなら、Squidは管理者の注意を得るためにレベル0のデバックレベルでWARNIBGを印刷します。値はミリセカンドです。

このディレクティブをセットすると、あなたがクライアントからこのようなGETやHEADのリクエストを送れるようにするかを指定できます。
Default:
# high_memory_warning 0

TAG: store_dir_select_algorithm

'round-robin'の代わりにこれをセットしてください。
Default:
# store_dir_select_algorithm least-load

TAG: forward_log

注意:このオプションは、Squidを -DWIP_FWD_LOG オプションを指定してリビルド(再コンパイル)した場合に有効です。

サーバー側リクエストを記録します。

これは現在進行中の作業です。
Default:
# none

TAG: ie_refresh on|off

バージョン5.5サービス・パック1までのMicrosoft インターネット・エクスプローラは、透過プロキシーを使った場合にフレッシュを使うことができないという問題を持っています。 この指定をつけることで、新鮮な内容があるかどうかを古いIEバージョンからでも IMS-REFRESH リクエストによって、すべて起源サーバーチェックさせることによりその問題に部分的な解決を行います。
これは、ある量(私の経験では〜10%)のヒット率の悪化になりますが、ユーザが現実に新鮮な内容を得ることを可能にします。
Default:
# ie_refresh off

TAG: vary_ignore_expire on|off

HTTP/1.0クライアントによってリクエストされたときに、多くのHTTPサーバはキャッシュコントロールヘッダーのない即時に消滅時間をもったオブジェクトを返します。
HTTP/1.1が完全にインプリメントされるまで、Squid はこのオプションによってそのような消滅時間を無視することができます。
警告: これは、キャッシュが意図しないオブジェクトのキャッシュを引き起こすかも知れないことに注意してください。
Default:
# vary_ignore_expire off

TAG: sleep_after_fork (microseconds)

これが0でない値にセットされる場合、主要なSquidプロセスは fork() システムコールの後にマイクロセカンドの指定された数をスリープします。 このスリープは、メモリの(仮想)不足によりあなたのシステムレポートがfork() の失敗をレポートするのを支援するかもしれません。 しかしながら、あなたが多くの子プロセスを持っていれば、これらのスリープによる遅れは合計を注意してください。 
Default:
# sleep_after_fork 0

Topへ戻る

Copyright© 1998-2003 ROBATA.ORG