最終更新日: 2014年1月13日
Squid Home / Index

ディレクティブ: external_acl_type

以前の名前:
動作条件:
デフォルト値: none
提案された設定:

このオプションはヘルパープログラムによって検査するステータスの外部aclクラスを定義します。

external_acl_type name [options] FORMAT.. /path/to/helper [helper arguments..]
オプション:
ttl=n
キャッシュされた結果を指定時間貯えます。(デフォルトで3600(1時間))
negative_ttl=n
negative(拒否)キャッシュの生存時間。(ttlと同じ指定方法)
children-max=n
この外部ACLでの検査のサービスのためのACLヘルパープログラムの最大数。(デフォルト 20)
children-startup=n
この外部ACLでの検査のサービスのためのACLヘルパープログラムの開始時の最低数(デフォルト 0)
children-idle=n
トラフィック負荷でも処理を進めるため、ヘルパープロセスの数を指定します。
Squidは、既存のプロセスの能力を克服する場合に、ロードのためにより多くのプロセスをこの数で生成するでしょう。
値はchildren-maxまで上がります。(デフォルト 1)
concurrency=n
プロセスごとの同時実行レベル。一度に1つを超えるクエリを処理することができるヘルパーと一緒に使用する。
cache=n
結果キャッシュのサイズを制限する。デフォルトは無制限です。
grace=n
新しい返答を待つことなく、キャッシュエントリーのリフレッシュを始めるTTLの残りのパーセンテージ。(デフォルトでは猶予期間はありません)
protocol=2.5
Squid-2.5 用外部ACLヘルパーへの互換モードです。
ipv4 / ipv6
このヘルパーと通信を行うのに使うIPプロトコル。デフォルトでは、自動的にIPv6を検出し利用できる場合にはそれを使う。

FORMATの仕様:

%LOGIN          認証されたユーザ名
%EXT_USER       前件の外部ACLによるユーザ名
%EXT_LOG        前件の外部ACLによる詳細ログ
%EXT_TAG        前件の外部ACLによるタグ
%IDENT          Identユーザ名
%SRC            クライアントのIPアドレス
%SRCPORT	    クライアントのポート番号
%URI            リクエストしたURI
%DST            リクエストされたホストのIPアドレス
%PROTO          リクエストされたプロトコル
%PORT           リクエストされたポート番号
%PATH           リクエストされたURLパス
%METHOD         リクエストメソッド
%MYADDR         SquidのインターフェースのIPアドレス
%MYPORT         Squidのhttp_portの番号
%PATH           リクエストされたURLパス(クエリ文字列がある場合はそれも含む)
%USER_CERT      PEM形式のSSLユーザー証明書
%USER_CERTCHAIN PEM形式のチェインを含むSSLユーザー証明書
%USER_CERT_xx   SSLユーザ証明書のサブジェクト属性xx
%USER_CA_xx	SSL SSLユーザ証明書発行者の属性XX

%>{Header}      HTTPリクエストヘッダーの"Header"
%>{Hdr:member}  HTTPリクエストヘッダーの"Hdr"とリストメンバー"member"
%>{Hdr:;member} ';'で区切られたHTTPリクエストヘッダリストのメンバーのリスト。';'は、英数字以外の文字にすることができます。
%<{Header}      HTTP応答ヘッダー"Header"
%<{Hdr:member}  HTTP応答ヘッダー"Hdr"とリストメンバー"menber"
%<{Hdr:;member} ':'で区切られたHTTP応答ヘッダーリストのメンバーリスト。';'は、英数字以外の文字にすることができます。
%ACL            テストされたACLの名前
%DATA           ACLの引数。使用されていない場合、任意の引数が自動的にヘルパーの行の末尾に追加されます。
                注:デフォルトで個別にパスするのに対して、エンコードは1つのトークンの引数となるでしょう。
%%              パーセント記号。入力フォーマットを変更しないことを必要とするヘルパーに便利。
 

基本的なリクエスト構文:

[channel-ID] FORMAT-values [acl-values ...]

FORMAT-values は、上にリストされたFORMATマクロを使用して、コンフィグ ファイル中の余白でセパレートしたFORMAT指定の拡張されたトランザクション詳細から成ります。

acl-values は参照しているコンフィグの 複数の'acl ... external'文字列で構成されます。 'acl external'ディレクティブを参照してください。
consists of any string specified in the referencing config 'acl ... external' line. see the "acl external" directive.

ヘルパーに送信されたリクエスト値のURL中の空白は、それぞれの値を保護するためにエスケープされます。
'protocol=2.5'を使うなら、ヘルパーに渡されるURLは空白の保護のためのエスケープはされません。

注: 'protocol=3.0'は不要となったため廃止されました。

'concurrency=' オプションを使用すると、プロトコルはrequest/response(要求/応答)の前に、クエリチャネルタグを導入するよう変更される。
クエリチャネルタグは0から concurrency-1 の間の数値である。
この値は、その要求に係る応答の最初の部分として、Squidにそのままエコーバックしなければなりません。

The helper receives lines expanded per the above format specification and for each input line returns 1 line starting with OK/ERR/BH result code and optionally followed by additional keywords with more details.

ヘルパーは上記のフォーマット仕様に従って、拡張行を受信し、各入力行に対して OK/ERR/BH の結果コードで始め、必要に応じてより多くの詳細を追加キーワードが続く1行を返す。


基本的な応答構文:

[channel-ID] result keyword=value ...

結果はいづれか1つのコードを返します。

OK
ACLのテストテストは一致した。
ERR
ACLのテストは一致しなかった。
BH
ヘルパー内部でエラーが識別されました。その予防の結果が返されました。
'一致'の意味は、あなたのsquid.confのアクセス制御の設定によって決まります。詳細は、Squidのwikiを参照してください。

定義されているキーワード:

user=
ユーザ名(loginの)
password=
ユーザパスワード (login= cache_peer のオプション)
message=
この応答の理由を説明するメッセージ。 エラーページの中の %o として利用できる。ERRとBHの結果として利用が便利。
tag=
リクエストにタグを適用してください。タグを一度セットすると、既存のタグを変更しません。
log=
文字列をaccess.logに記録する。 logformat 中の%eaとして利用可能です。
どんなキーワードも任意のOK、ERRあるいはBHのレスポンス上で送られるかもしれません。

すべての応答キーワードの値はURLエスケープされたシングルトークンか、二重引用符(")の場合には\でエスケープした二重引用符で囲むか\でエスケープされた任意の文字である。二重引用符はSquidに解釈される前に削除される。\r と \nは、CRとLFで交換される。

幾つかのキーの値のサンプル:

user=John%20Smith
user="John Smith"
user="J. \"Bob\" Smith"

Topへ戻る

Copyright© 1998-2003 ROBATA.ORG