付録A. Caching Proxy コマンドの使用
このには、プロキシー・サーバー・コマンドのリファレンスを記載してあります。
cgiparse コマンド
目的
cgiparse コマンドは、CGI スクリプトの QUERY_STRING 環境変数を解析するために使用します。QUERY_STRING 環境変数が設定されていない場合は、コマンドは、標準入力から CONTENT_LENGTH で指定された文字数だけ文字を読み取ります。
戻される出力はすべて、標準出力に書き込まれます。
形式
cgiparse -Flag [Modifier]
パラメーター
フラグ、フラグと等価な 1 文字 (-k -f -v -r -i -s -p -c -q -P)、およびフラグの機能を
以下に示します。
- -keywords | -k
- QUERY_STRING をキーワードとして構文解析します。
キーワードはデコードされ、標準出力に 1 行に 1 つずつ書き込まれます。
- -form | -f
- QUERY_STRING をフォーム要求として解析します。シェルによる評価が行われる際に、
接頭部 が FORM_ で、それにフィールド名が続くシェル変数を設定するストリングを戻します。フィールド値は、変数の内容です。
- -value field-name | -v field-name
- QUERY_STRING をフォーム要求として解析します。field-name の値のみを戻します。
- -read | -r
- 標準入力から CONTENT_LENGTH 文字を読み取り、それらを標準出力に書き出します。
- -init | -i
- QUERY_STRING が設定されていなければ、標準入力の値を読み取り、QUERY_STRING をこの値に設定する SET ステートメントを出力します。これは、GET および POST の両方のメソッドに使用することができます。次に、典型的な使用例を示します。
eval 'cgiparse -init'
このコマンドが呼び出されると、GET または POST のどちらが使用されたかに関係なく、QUERY_STRING 環境変数が設定されます。
cgiparse は、GET メソッドが使用される場合には同じスクリプトで
複数回呼び出すことができますが、POST メソッドが使用される場合には、一度だけ呼び出します。
POST メソッドの場合、標準入力が読み取られた後、2 回目に cgiparse を呼び出しても
標準入力は空であり、無期限に待機することになります。
- -sep separator | -s separator
- 複数の値を区切るために使用されるストリングを指定します。-value フラグを使用している場合、デフォルトの区切り記号は改行です。-form フラグを使用している場合、デフォルトの区切り記号はコンマ (,) です。
- -prefix prefix | -p prefix
- このフラグは -POST および
-form とともに使用され、環境変数名を作成する際に使用する接頭部を指定します。
デフォルトは FORM_ です。
- -count | -c
- -keywords、-form、および
-value とともに使用されて、これらのフラグに関連する項目のカウントを出力します。
- -keywords | -k
- キーワードの数を戻します。
- -form | -f
- 固有のフィールドの数を戻します (複数の値は 1 とカウントされます)。
- -value field-name | -v field-name
- field-name の値の数を出力します
(field-name という名前のフィールドがない場合は 0 が出力されます)。
- -number
- -keywords、-form、および
-value とともに使用されて、これらのフラグに関連する指定されたオカレンスを戻します。
- -keywords
- n 番目のキーワードを戻します。(例えば、-2 -keywords と
指定すると、2 番目のキーワードが出力されます。)
- -form
- n 番目のフィールドの値すべてを出力します。
(例えば、-2 -form と指定すると、2 番目のフィールドの値すべてが出力されます。)
- -value field-name
- フィールド field-name の複数の値のうち
n 番目の値を出力します。(例えば、-2 -value -whatsit と指定すると、whatsit フィールドの 2 番目の値が出力されます。)
- -quiet | -q
- すべてのエラー・メッセージが表示されないようにします。
(ただし、ゼロ以外の終了状況はエラーを示しています。)
- -POST | -P
- 標準入力 (または、ファイル名が意図されている場合は、stdin ファイル) からの情報は
直接デコードされ、解析されてシェル変数となります。QUERY_STRING は使用されません。
-POST は、-init と
-form を連続して使用するのと同じです。
例
以下の例では、実際には QUERY_STRING が既にサーバーによって設定されているという事実を無視しています。
これらの例において、$ は Bourne シェル (B シェル) のプロンプトです。
- キーワード検索
$ QUERY_STRING="is+2%2B2+really+four%3F"
$ export QUERY_STRING
$ cgiparse -keywords
is
2+2
really
four?
$
- すべてのフォーム・フィールドの構文解析
$ export QUERY_STRING="name1=Value1&name2=Value2%3f+That%27s+right%21";
$ cgiparse -form
FORM_name1='Value1'; FORM_name2='Value2? That'\'s right!'
$ eval `cgiparse -form`
$ set | grep FORM
FORM_name1="Value1"
FORM_name2="Value2? That's right!"
$
- 1 つのフィールド値だけの抽出
$ QUERY_STRING="name1=value1&name2=Second+value%3F+That'\'s%27s
$ cgiparse -value name1
value1
$ cgiparse -value name2
Second value? That's right!
$
結果
- 0
- 成功
- 1
- コマンド行に違反がある。
- 2
- 環境変数の設定に誤りがある。
- 3
- 要求された情報を入手できなかった (該当フィールドがない、フォーム・フィールド値が要求されたときに QUERY_STRING にキーワードが入っていた、など)。
注:
これらのエラー・コードの 1 つを受信するときには、追加の通知メッセージも受信することがあります。
メッセージは発行されたコマンドにより異なります。
cgiutils コマンド
目的
nph (no-parse header) プログラムで cgiutils コマンドを使用して、完全な HTTP 1.0 応答を生成します。
注:
ユーザー固有の nph (no-parse header)
をプログラムを実行してユーザー固有の戻り値を戻したい場合、そのプログラムの名前は nph- で始まらなければなりません。
このようにしておくと、サーバー・ヘッダーは、ユーザー固有の戻り値を標準サーバー戻り値でオーバーライドしません。
形式
cgiutils -Flag [Modifier]
Modifier にブランクが含まれる場合は、それを引用符 ("") で囲んでください。
パラメーター
- -version
- バージョン情報を戻します。
- -nodate
- Date: ヘッダーを戻しません。
- -noel
- ヘッダーの後にブランク行を出力しません。
これは、最初のヘッダー行の後に他の MIME ヘッダーを出力したい場合に役立ちます。
- -status nnn
- HTTP ヘッダーだけでなく、状況コード nnn 付きの完全な
HTTP 応答を生成します。Expires: ヘッダーだけが必要な場合は、この
フラグを使用しないでください。
- -reason explanation
- HTTP 応答の理由行を指定します。このフラグは、-status nnn フラグを
指定した場合にのみ使用できます。
- -ct [type/subtype]
- MIME Content-Type ヘッダーを指定します。次の例では、text/html という MIME コンテンツ・タイプを指定します。
cgiutils -ct text/html
type/subtype を省略すると、MIME コンテンツ・タイプは、デフォルトの text/plain に設定されます。次の例は、MIME コンテンツ・タイプを text/plain に戻します。
cgiutils -ct
- -ce encoding
- MIME Content-Encoding ヘッダーを指定します。例えば、次のとおりです。
cgiutils -ce x-compress
- -cl language-code
- MIME Content-Language ヘッダーを指定します。例えば、次のとおりです。
cgiutils -cl en_UK
- -length nnn
- MIME Content-Length ヘッダーを指定します。
- -expires Time-Spec
- MIME Expires: ヘッダーを指定します。このフラグは、有効期間 (文書の有効期限) を days (日)、hours (時間)、minutes (分)、および seconds (秒) の任意の組み合わせで指定します。これらの値は、文書が有効と見なされる時間を指定します。例えば、次のとおりです。
cgiutils -expires 2 days 12 hours
この cgiutils コマンドは、指定された時間を現在の
GMT (グリニッジ標準時) に加算して有効期限日付を求めます。有効期限日付
は、HTTP 形式で Expires: ヘッダーに書き込まれます。
- -expires now
- Date: ヘッダーに一致
する Expires: ヘッダーを生成します。
- -uri URI
- 戻される文書の URI (Universal Resource Identifier) を指定します。URI は URL と同じものと考えて構いません。
- -extra xxx: yyy
- cgiutils コマンドでしか指定できない特別なヘッダーを指定します。
例
- 次の例では、Expires: ヘッダーの有効期限を計算します。
cgiutils -expires "1 year 3 months 2 weeks 4 days 12 hours 30 mins"
- 次の例では、状況コードと理由を指定し、Expires: ヘッダー
を Date: ヘッダーに等しく設定します。
cgiutils -status 200 -reason "Virtual doc follows" -expires now
このコマンドは、次のようなヘッダーを生成します。
HTTP/1.0 200 Virtual doc follows
MIME-Version: 1.0
Server: IBM-ICS
Date: Tue, 05 Jan 1996 03:43:46 GMT
Expires: Tue, 05 Jan 1996 03:43:46 GM
Server: ヘッダーは CGI 環境で使用可能なため、cgiutils コマンドは
自動的にこのヘッダーを生成します。また、-nodate フラグを指定しない
限り、Date: フィールドも自動的に生成されます。
MIME ヘッダー・セクションの終わりを示すために、出力の後にさらにブランク行が 1 行出力されます。ユーザー固有のヘッダーをさらに出力したい場合は、-noel (NO-Empty-Line) フラグを次の例で示すように使用してください。
- ヘッダー行の後にブランク行を出力したくない場合は、-noel フラグを使用してください。
cgiutils -noel -expires "2 days" -nodate
HTTP/1.0 200 Virtual doc follows
MIME-Version: 1.0
Server: IBM-ICS
Expires: Tue, 07 Jan 1996 03:43:46 GMT
htadm コマンド
目的
htadm コマンドの使用目的は、サーバー・パスワード・ファイルを制御することです。
サーバーはパスワード・ファイルを使用して、ファイルへのアクセスを制御します。 パスワード・ファイルへ
ユーザー名を追加したり、パスワード・ファイルからユーザーを削除したり、ユーザーのパスワードを検査したり、
空のパスワード・ファイルを作成したりすることができます。
まずユーザーのパスワードを削除してから、新しいパスワードを作成することによって、ユーザーのパスワードを変更することもできます。
注:
htadm を使用してユーザーの追加、パスワードの変更、またはパスワードの検査を行うときは、パスワードをコマンド行に入力しなければなりません。このコマンドではすぐにコマンド行からパスワードが破棄されるので、マシン上のプロセス・リストを調べても (例えば ps コマンドを使用して)、ユーザーのパスワードが判明することはほとんどありません。
形式
パラメーター
- -adduser password-file user-name [password [real-name]]
- ユーザーおよびパスワードをパスワード・ファイルに入れます。password-file のみを指定してコマンドを入力すると、他のパラメーターの入力を求めるプロンプトが出されます。
- password-file
- ユーザー名を入れるパスワード・ファイルのパスとファイル名。
- user-name
- 入れたいユーザーの名前。
ユーザー名に使用できる文字は英字および数字のみです。特殊文字を使用してはなりません。
指定した名前のユーザーが既にパスワード・ファイル内にある場合は、このコマンドは失敗します。
- password
- ユーザー名に定義したいパスワード。
パスワードは最大 32 文字の長さです。
パスワードに使用できる文字は英字および数字のみです。特殊文字を使用してはなりません。
注:
- 一部のブラウザーは、8 文字を超える長さのパスワードを読み取ることも送信することもできません。
この制限があるので、8 文字を超える長さのパスワードを定義した場合、サーバーは、パスワード全体を有効と認識するか、またはパスワードの
最初の 8 文字のみを有効と認識します。
- 管理者ユーザー名およびパスワードには、たとえオペレーティング・システムが大/小文字の区別をしない場合でも、大/小文字の区別があります。「構成および管理」フォームにアクセスするときは、htadm コマンドを使用して、必ず正確なユーザー名およびパスワードを入力するようにしてください。
- real-name
- 追加したユーザー名の識別のために使用したいコメントまたは名前。入力した情報がそのままパスワード・ファイルに書き込まれます。
- -deluser password-file [user-name]
- パスワード・ファイルからユーザーを削除します。password-file のみを指定してコマンドを入力すると、user-name パラメーターの入力を求めるプロンプトが出されます。
- password-file
- ユーザー名が削除されるパスワード・ファイルのパスとファイル名。
- user-name
- 削除したいユーザーの名前。
指定したユーザー名がパスワード・ファイルにない場合は、このコマンドは失敗します。
- -passwd password-file [user-name [password]]
- パスワード・ファイル内に既に定義されているユーザー名のパスワードを変更します。password-file のみを指定してコマンドを入力すると、他のパラメーターの入力を求めるプロンプトが出されます。
- password-file
- パスワード変更の対象であるユーザー名が入っているパスワード・ファイルのパスとファイル名。
- user-name
- パスワードを変更したいユーザー名。
指定したユーザー名がパスワード・ファイルにない場合は、このコマンドは失敗します。
- password
- ユーザー名に対して定義したい新規パスワード。
パスワードは最大 32 文字の長さです。
パスワードに使用できる文字は英字および数字のみです。特殊文字を使用してはなりません。
注:
- 一部のブラウザーは、8 文字を超える長さのパスワードを読み取ることも送信することもできません。
この制限があるので、8 文字を超える長さのパスワードを定義した場合、サーバーは、パスワード全体を有効と認識するか、またはパスワードの
最初の 8 文字のみを有効と認識します。
- 管理者ユーザー名およびパスワードには、たとえオペレーティング・システムが大/小文字の区別をしない場合でも、大/小文字の区別があります。「構成および管理」フォームにアクセスするときは、htadm コマンドを使用して、必ず正確なユーザー名およびパスワードを入力するようにしてください。
- -check password-file [user-name [password]]
- パスワード・ファイル内に既に定義されているユーザー名のパスワードを検査し、それが正しいかどうかを知らせます。password-file のみを指定してコマンドを入力すると、他のパラメーターの入力を求めるプロンプトが出されます。
- password-file
- パスワード検査の対象であるユーザー名が入っているパスワード・ファイルのパスとファイル名。
- user-name
- パスワードを検査したいユーザー名。
指定したユーザー名がパスワード・ファイルにない場合は、このコマンドは失敗します。
- password
- 検査したいパスワード。
入力したパスワードが、ユーザー名に対して定義されているパスワードである場合は、このコマンドは Correct を標準出力に書き出し、戻りコード 0 で終了します。
入力したパスワードが、ユーザー名に対して定義されているパスワードでない場合は、このコマンドは Incorrect を標準出力に書き出します。
- -create password-file
- 空のパスワード・ファイルを作成します。
- password-file
- 作成したいパスワード・ファイルのパスとファイル名。
例
- パスワード・ファイルにユーザーを追加するには、次のように入力します。
- Linux および UNIX システム:
htadm -adduser /opt/ibm/edge/cp/server_root/protect/heroes.pwd
clark superman "Clark Kent"
- Windows システム:
htadm -adduser "C:¥Program Files¥IBM¥edge¥cachingproxy¥cp¥server_root¥protect¥
heroes.pwd" clark superman "Clark Kent"
注:
htadm コマンドは 1 行で入力する必要があります。
上記では、読みやすくするために複数行にしてあります。実際にコマンドを入力する際には、
clark と superman の間に 1 つ以上のスペースを挿入して、すべて 1 行に入力してください。
- パスワード・ファイルからユーザーを削除するには、次のように入力します。
- Linux および UNIX システム:
htadm -deluser /opt/ibm/edge/cp/server_root/protect/
heroes.pwd clark superman "Clark Kent"
- Windows システム:
htadm -deluser "C:¥Program Files¥IBM¥edge¥cachingproxy¥cp¥server_root¥protect¥
heroes.pwd" clark superman "Clark Kent"
目的
htcformat コマンドは、プロキシー・キャッシュを保持するロー・デバイスまたはファイルの準備
を行うときに使用します。プロキシー・キャッシュで使用するようデバイスを指定する前に、このフォーマット・コマンド
を使用する必要があります。
装置パスでロー・デバイスを指定することが必要です。ロー・デバイスへのアクセス方法の詳細については、使用ファイル・システムの資料を参照
してください。プロキシー・サーバー・キャッシングの構成の例を利用できます。
注:
Linux 2.2 カーネルは、ロー・デバイスへのキャッシュをサポートしていません。Linux プラットフォームでは、ファイルとメモリーだけをキャッシュ・ストレージに使用できます。
Caching Proxy キャッシュの最小サイズは 16392 KB であり、2049 ブロックです。
形式
htcformat device [-blocksize <block size>] [-blocks number of blocks]
htcformat -file filepath [-blocksize block size] -blocks number of blocks
パラメーター
- -blocksize
- これは、キャッシュ・デバイスのメディア内のブロックのサイズを設定します。ブロック・サイズは、バイト 単位です。デフォルトは 8192 であり、あらゆる場合にこのデフォルトを使用してください。
- -blocks
- デバイス上またはファイル内に作成するブロックの数。ファイルをフォーマットするときは、ファイル・サイズを指定するためにこの引数は必須です。また、この引数を使用して、キャッシュ・ストレージ用に使用される特定のデバイスまたは区画の
容量を制限することもできます。ブロック引数を指定しないと、区画に入るだけの数のブロックが作成されます。
- -file
- ストレージ・デバイスではなく、ファイルをフォーマットします。
使用法
さらに、キャッシュ・ファイルまたはキャッシュ・デバイスは、キャッシュ・システムによって
索引化とガーベッジ・コレクションのためにコンテナー内に分離されます。コンテナーのサイズは、一定数のブロックに設定されます。すなわち、コンテナーのサイズを構成
することはできません。ガーベッジ・コレクションを実行するために、最低限 2 つのコンテナーが必要です。最小
キャッシュ・サイズは 16392 KB です。
htcformat コマンドでは、コンテナーが 2 つ未満のキャッシュ・デバイスを生成するようなフォーマット要求は拒否されます。
例
次の例では、c0t0d0s0 というディスク区画を Solaris 上でフォーマット
します。
htcformat /dev/rdsk/c0t0d0s0
次の例では、lv02 というディスク区画を AIX 上でフォーマットします。
htcformat /dev/rlv02
次の例では、d: というディスク区画を Windows 上でフォーマットします。
htcformat ¥¥.¥d:
次の例では、filecache という名前のファイルを約 1 GB の大きさに
フォーマットします。
htcformat -file /opt/ibm/edge/cp/filecache -blocks 131072
ibmproxy コマンド
目的
ibmproxy コマンドは、サーバーを始動するために使用します。
これらのフラグは、(-r を除く) すべて、サーバー構成ファイル内のディレクティブを使用して
設定することができます。
通常、そのディレクトリーについてよく知らないユーザーが読む指示または注意が
書かれている README という名前のファイルを作成します。
ibmproxy コマンドはデフォルトでは、ハイパーテキスト・バージョンのディレクトリーに README ファイルを埋め込みます。README ファイルの指示は、DirReadme 構成ディレクティブで設定することもできます。
形式
ibmproxy [-Flag [-Flag [-Flag..]]]
パラメーター
- -nobg
- サーバーをバックグラウンド・プロセスとしてではなく、フォアグラウンド・プロセスとして実行します。デフォルトでは、バックグラウンド・プロセス
として実行します。
- -nosnmp
- SNMP サポートを off にします。
- -p port-number
- このポート番号を listen します。デフォルトのポート番号は 80 です。
このフラグは、構成ファイルで指定された Port ディレクティブをオーバーライドします。デフォルト値または構成ファイルで指定された値を使用するときは、このフラグを省略して
ください。
- -r configuration-file
- 構成ファイルとして使用するファイルを指定します。デフォルト構成ファイル以外の構成ファイルを使用してサーバーを始動したい場合は、このフラグを使用しなければなりません。これによって、複数の構成ファイルが使用できるようになります。
- -restart
- 現在実行中のサーバーを再始動します。ibmproxy コマンドは、実行中のサーバーのプロセス番号を PidFile から
取得し、そのプロセス番号を HangUP シグナル (HUP) に送信します。その後、構成ファイルを再ロードし、ログ・ファイルを再オープンします。ファイルの
破壊を回避するために、同じ PidFile、ログ・ファイル、およびプロキシー・キャッシュを使用して、
サーバーの 2 つのインスタンスを同時に実行しないでください。
http デーモンは、サーバーが現在 PidFile
にアクセスするために使用している構成ファイルを読み取る必要があるため、再始動する際には、同じ構成ファイルを指定する必要があります。サーバーの始動時に -r フラグと特定の構成ファイルを使用した場合、このフラグおよび同じファイルを -restart で指定する必要があります。
- -snmp
- SNMP サポートを on にします。
- -unload
- Linux では、これが、関連するファイアウォール規則を削除します。
また、シグナル処理オプションは Linux および UNIX プラットフォームのみに存在します。
Linux および UNIX プラットフォームでは、次のオプションが使用可能です。
- SIGTERM
- 完了時には ibmproxy は停止し、終了します。SIGKILL または CANCEL を使用すると、直ちに終了させることができます。
- SIGHUP
- 実行中の場合、ibmproxy は構成ファイルを再始動して再ロードし、処理を続行します。
例