Oracle® Fusion Middleware

Oracle Traffic Director構成ファイル・リファレンス

12c (12.2.1)

E70060-01(原本部品番号:E54636-03)

2015年12月

Oracle Fusion Middleware Oracle Traffic Director構成ファイル・リファレンス, 12c (12.2.1)

E70060-01

Copyright © 2013, 2015, Oracle and/or its affiliates.All rights reserved.

原本著者: Repaka Chaitanya

原本協力者: Arvind Srinivasan、Basant Kukreja

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

例一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

1 構成ファイルおよびディレクトリの概要

- 1.1 構成ファイル

- 1.1.1 server.xmlファイル

- 1.1.2 obj.confファイル

- 1.1.3 certmap.confファイル

- 1.1.3.1 構文

- 1.1.3.2 プロパティ

- 1.1.4 NZウォレット・ファイル

- 1.1.5 デフォルト・パス

- 1.2 ディレクトリ構造

- 1.2.1 bin

- 1.2.2 Legal

- 1.2.3 lib

- 1.2.4 admin-server

- 1.2.5 net-server-id

- 1.3 動的再構成

2 server.xmlの構文および使用

- 2.1 server.xmlの概要

- 2.1.1 server.xmlファイルの編集

- 2.1.1.1 要素値の編集

- 2.1.1.2 要素の追加

- 2.1.1.3 server.xmlの検証

- 2.2 server.xmlの理解

- 2.2.1 サーバー・プール

- 2.2.2 ヘルス・チェック

- 2.2.3 高可用性

- 2.2.4 HTTPプロトコル

- 2.2.5 ロギングおよび監視

- 2.2.6 パフォーマンス・チューニング

- 2.2.7 SSL、TLSおよびPKCS #11

- 2.2.8 変数

- 2.2.9 仮想サーバー

- 2.3 サンプルserver.xmlファイル

3 server.xmlの要素

- 3.1 要素のリスト

- 3.1.1 access-log

- 3.1.2 access-log-buffer

- 3.1.3 cluster

- 3.1.4 cert

- 3.1.5 crl

- 3.1.6 cipher

- 3.1.7 dns

- 3.1.8 dns-cache

- 3.1.9 event

- 3.1.10 failover-group

- 3.1.11 health-check

- 3.1.12 http

- 3.1.13 http-listener

- 3.1.14 instance

- 3.1.15 keep-alive

- 3.1.16 localization

- 3.1.17 log

- 3.1.18 max-fd

- 3.1.19 origin-server-pool

- 3.1.20 origin-server

- 3.1.21 property

- 3.1.22 proxy-cache

- 3.1.23 qos-limits

- 3.1.24 server

- 3.1.25 snmp

- 3.1.26 ssl

- 3.1.27 ssl3-tls-ciphers

- 3.1.28 ssl-session-cache

- 3.1.29 stats

- 3.1.30 tcp-access-log

- 3.1.31 tcp-listener

- 3.1.32 tcp-proxy

- 3.1.33 tcp-thread-pool

- 3.1.34 thread-pool

- 3.1.35 time

- 3.1.36 variable

- 3.1.37 virtual-server

- 3.1.38 webapp-firewall-ruleset

4 obj.confの構文および使用

- 4.1 リクエスト処理プロセスの概要

- 4.1.1 リクエスト処理プロセスのステップ

- 4.2 obj.confのディレクティブ

- 4.3 obj.confのオブジェクト

- 4.3.1 name属性を使用するオブジェクト

- 4.3.2 ppath属性を使用するオブジェクト

- 4.3.3 Client、If、ElseIfおよびElseタグの使用

- 4.3.3.1 Client

- 4.3.3.2 If、ElseIfおよびElse

- 4.4 obj.confの制御フロー

- 4.4.1 AuthTrans

- 4.4.2 NameTrans

- 4.4.2.1 Oracle Traffic Directorが他のオブジェクトを処理する方法と条件

- 4.4.3 PathCheck

- 4.4.4 ObjectType

- 4.4.5 Input

- 4.4.6 Output

- 4.4.7 Route

- 4.4.8 Service

- 4.4.9 AddLog

- 4.4.10 Error

- 4.5 機能フローの変更

- 4.5.1 リクエストの再起動

- 4.5.2 内部リクエスト

- 4.5.3 URI変換

- 4.6 obj.confの編集

- 4.6.1 ディレクティブの順序

- 4.6.2 パラメータ

- 4.6.3 大/小文字区別

- 4.6.4 セパレータ

- 4.6.5 引用符

- 4.6.6 空白

- 4.6.7 行の継続

- 4.6.8 パス名

- 4.6.9 コメント

5 obj.confの事前定義済のサーバー・アプリケーション関数およびフィルタ

- 5.1 bucketパラメータ

- 5.2 AuthTrans

- 5.2.1 get-sslid

- 5.2.2 qos-handler

- 5.2.3 webapp-firewall

- 5.3 NameTrans

- 5.3.1 assign-name

- 5.3.2 block-request-cookie

- 5.3.3 map

- 5.3.4 reverse-map

- 5.3.5 rewrite

- 5.3.6 sed-request-header

- 5.3.7 strip-params

- 5.4 PathCheck

- 5.4.1 check-request-limits

- 5.4.2 deny-existence

- 5.4.3 get-client-cert

- 5.4.4 nt-uri-clean

- 5.4.5 ssl-logout

- 5.4.6 unix-uri-clean

- 5.5 ObjectType

- 5.5.1 block-auth-cert

- 5.5.2 block-cache-info

- 5.5.3 block-cipher

- 5.5.4 block-ip

- 5.5.5 block-issuer-dn

- 5.5.6 block-jroute

- 5.5.7 block-keysize

- 5.5.8 block-proxy-agent

- 5.5.9 block-secret-keysize

- 5.5.10 block-ssl

- 5.5.11 block-ssl-id

- 5.5.12 block-user-dn

- 5.5.13 block-via

- 5.5.14 block-xforwarded-for

- 5.5.15 forward-auth-cert

- 5.5.16 forward-cache-info

- 5.5.17 forward-cipher

- 5.5.18 forward-ip

- 5.5.19 forward-issuer-dn

- 5.5.20 forward-jroute

- 5.5.21 forward-keysize

- 5.5.22 forward-proxy-agent

- 5.5.23 forward-secret-keysize

- 5.5.24 forward-ssl

- 5.5.25 forward-ssl-id

- 5.5.26 forward-user-dn

- 5.5.27 forward-via

- 5.5.28 forward-xforwarded-for

- 5.5.29 http-client-config

- 5.5.30 proxy-cache-config

- 5.5.31 proxy-cache-override-http

- 5.5.32 proxy-websocket-config

- 5.5.33 reverse-block-date

- 5.5.34 reverse-block-server

- 5.5.35 reverse-forward-date

- 5.5.36 reverse-forward-server

- 5.5.37 set-basic-auth

- 5.5.38 set-cache-control

- 5.5.39 set-cookie

- 5.5.40 type-by-exp

- 5.5.41 type-by-extension

- 5.6 Input

- 5.7 Output

- 5.8 Route

- 5.8.1 set-origin-server

- 5.8.2 set-proxy-server

- 5.9 Service

- 5.9.1 proxy-retrieve

- 5.9.2 remove-filter

- 5.9.3 service-proxy-cache-dump

- 5.9.4 service-trace

- 5.9.5 stats-xml

- 5.10 AddLog

- 5.10.1 flex-log

- 5.11 Error

- 5.11.1 qos-error

- 5.11.2 send-error

- 5.12 共通SAF

- 5.12.1 insert-filter

- 5.12.1.1 例

- 5.12.2 match-browser

- 5.12.3 redirect

- 5.12.4 remove-filter

- 5.12.4.1 例

- 5.12.5 restart

- 5.12.6 rewrite-cookie

- 5.12.7 sed-param-name

- 5.12.8 sed-param-value

- 5.12.9 sed-response-header

- 5.12.10 set-priority

- 5.12.11 set-variable

A 変数、式、ワイルドカードおよび文字列補間の使用

- A.1 If、ElseIfおよびElseタグ

- A.2 変数

- A.2.1 事前定義変数

- A.2.2 カスタム変数

- A.2.3 変数の解決

- A.3 式

- A.3.1 式構文

- A.3.2 ブール値としての式の結果

- A.3.3 式リテラル

- A.3.3.1 文字列リテラル

- A.3.3.2 数値リテラル

- A.3.4 式変数

- A.3.5 式演算子

- A.3.6 式関数

- A.3.6.1 atime

- A.3.6.2 choose

- A.3.6.3 ctime

- A.3.6.4 escape

- A.3.6.5 external

- A.3.6.6 httpdate

- A.3.6.7 lc

- A.3.6.8 length

- A.3.6.9 lookup

- A.3.6.10 lookupregex

- A.3.6.11 mtime

- A.3.6.12 owner

- A.3.6.13 uc

- A.3.6.14 unescape

- A.3.6.15 uuid

- A.3.7 正規表現

- A.4 文字列補間

- A.4.1 補間文字列での変数の使用

- A.4.2 補間文字列での式の使用

- A.5 ワイルドカード・パターン

B カスタム・アクセス・ログ・ファイル形式の使用

C 時刻書式の使用

D サーバー構成要素および事前定義SAFのアルファベット順のリスト

索引

例の一覧

- 2-1 server.xmlファイル

表一覧

- 1-1 certmap.confのプロパティ

- 1-2 デフォルト・パス

- 3-1 access-logのサブ要素

- 3-2 access-log-bufferのサブ要素

- 3-3 clusterのサブ要素

- 3-4 certのサブ要素

- 3-5 crlのサブ要素

- 3-6 cipherのサブ要素

- 3-7 dnsのサブ要素

- 3-8 dns-cacheのサブ要素

- 3-9 eventのサブ要素

- 3-10 failover-groupのサブ要素

- 3-11 health-checkのサブ要素

- 3-12 httpのサブ要素

- 3-13 http-listenerのサブ要素

- 3-14 instanceのサブ要素

- 3-15 keep-aliveのサブ要素

- 3-16 localizationのサブ要素

- 3-17 logのサブ要素

- 3-18 origin-server-poolのサブ要素

- 3-19 origin-serverのサブ要素

- 3-20 propertyのサブ要素

- 3-21 proxy-cacheのサブ要素

- 3-22 qos-limitsのサブ要素

- 3-23 serverのサブ要素

- 3-24 snmpのサブ要素

- 3-25 sslのサブ要素

- 3-26 ssl3-tls-ciphersのサブ要素

- 3-27 ssl-session-cacheのサブ要素

- 3-28 statsのサブ要素

- 3-29 tcp-access-logのサブ要素

- 3-30 tcp-listenerのサブ要素

- 3-31 tcp-proxyのサブ要素

- 3-32 tcp-thread-poolのサブ要素

- 3-33 thread-poolのサブ要素

- 3-34 timeのサブ要素

- 3-35 variableのサブ要素のリスト

- 3-36 virtual-serverのサブ要素

- 4-1 Clientタグのパラメータ

- 5-1 webapp-firewallのパラメータ

- 5-2 assign-nameのパラメータ

- 5-3 block-request-cookieのパラメータ

- 5-4 mapのパラメータ

- 5-5 reverse-mapのパラメータ

- 5-6 rewriteのパラメータ

- 5-7 sed-request-headerのパラメータ

- 5-8 check-request-limitsのパラメータ

- 5-9 deny-existenceのパラメータ

- 5-10 get-client-certのパラメータ

- 5-11 nt-uri-cleanのパラメータ

- 5-12 unix-uri-cleanのパラメータ

- 5-13 forward-auth-certのパラメータ

- 5-14 forward-cache-infoのパラメータ

- 5-15 forward-cipherのパラメータ

- 5-16 forward-ipのパラメータ

- 5-17 forward-issuer-dnのパラメータ

- 5-18 forward-jrouteのパラメータ

- 5-19 forward-keysizeのパラメータ

- 5-20 forward-proxy-agentのパラメータ

- 5-21 forward-secret-keysizeのパラメータ

- 5-22 forward-ssl

- 5-23 forward-ssl-idのパラメータ

- 5-24 forward-user-dnのパラメータ

- 5-25 forward-viaのパラメータ

- 5-26 forward-xforwarded-for

- 5-27 http-client-configのパラメータ

- 5-28 proxy-cache-configのパラメータ

- 5-29 proxy-cache-override-httpのパラメータ

- 5-30 proxy-websocket-configのパラメータ

- 5-31 set-basic-authのパラメータ

- 5-32 set-cache-controlのパラメータ

- 5-33 キャッシュ制御ディレクティブ

- 5-34 set-cookieのパラメータ

- 5-35 type-by-expのパラメータ

- 5-36 Inputディレクティブのオプション・パラメータ

- 5-37 Outputディレクティブのオプション・パラメータ

- 5-38 set-origin-serverのパラメータ

- 5-39 set-proxy-serverのパラメータ

- 5-40 Serviceディレクティブのオプション・パラメータ

- 5-41 proxy-retrieveのパラメータ

- 5-42 remove-filterのパラメータ

- 5-43 service-proxy-cache-dumpのパラメータ

- 5-44 service-traceのパラメータ

- 5-45 stats-xmlのパラメータ

- 5-46 flex-logのパラメータ

- 5-47 qos-errorのパラメータ

- 5-48 send-errorのパラメータ

- 5-49 共通SAF

- 5-50 insert-filterのパラメータ

- 5-51 match-browserのパラメータ

- 5-52 redirectのパラメータ

- 5-53 remove-filterのパラメータ

- 5-54 restartのパラメータ

- 5-55 restartのパラメータ

- 5-56 sed-param-nameのパラメータ

- 5-57 sed-param-valueのパラメータ

- 5-58 sed-response-headerのパラメータ

- 5-59 restartのパラメータ

- 5-60 set-variableのパラメータ

- 5-61 サポートされる変数

- A-1 ucの引数

- A-2 unescapeの引数

- C-1 日付と時刻の書式文字列

はじめに

このドキュメントでは、Oracle® Fusion Middlewareの構成ファイル(server.xmlやobj.confなど)の目的と使用方法について説明します。また、これらの構成ファイルの要素およびディレクティブの包括的なリストを提供します。

対象読者

このドキュメントの対象読者は、Oracle® Fusion Middlewareを管理および保守する担当者です。

このドキュメントは、読者が次の技術に精通していることを前提としています。

- ターミナル・ウィンドウでの作業

- HTTP

- XML

- UNIXに類似したプラットフォームでのオペレーティング・システム・コマンドの実行

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info) か、聴覚に障害のあるお客様は (http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、Oracle Technology Networkで入手可能な次のドキュメントを参照してください。

- Oracle Traffic Directorのインストール

- 『Oracle Fusion Middleware Oracle Traffic Director WebLogic Scripting Toolコマンド・リファレンス』

- Oracle Traffic Directorの管理

- WebLogic Server MTの使用

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

1 構成ファイルおよびディレクトリの概要

Oracle Traffic Directorの構成および動作は、一連の構成ファイルによって決定されます。Oracle Fusion Middleware ControlおよびWebLogic Scripting Tool (WLST)を使用して、構成ファイル設定を変更できます。これらのファイルは手動で編集することもできます。

この章の内容は次のとおりです。

- 構成ファイル

- ディレクトリ構造

- 動的再構成

1.1 構成ファイル

各サーバー・インスタンスには独自のディレクトリがあり、このドキュメントではそれをINSTANCE_HOMEと呼びます。INSTANCE_HOME/configディレクトリには、Oracle® Fusion Middlewareコンポーネントの構成ファイルが含まれます。構成ファイルの正確な数と名前は、有効化されているか、またはサーバーにロードされているコンポーネントに応じて異なります。INSTANCE_HOMEのデフォルトの場所は、1.1.5項「デフォルト・パス」を参照してください。

次の項では、Oracle Traffic Directorの構成ファイルと関連情報について説明します。

- server.xmlファイル

- obj.confファイル

- certmap.confファイル

1.1.1 server.xmlファイル

server.xmlファイルには、Oracle® Fusion Middleware構成が含まれます。server.xmlファイルの詳細は、第2章「server.xmlの構文および使用」を参照してください。

1.1.2 obj.confファイル

obj.confファイルには、HTTPリクエスト処理のディレクティブが含まれます。obj.confファイルの詳細は、第4章「obj.confの構文および使用」を参照してください。

1.1.3 certmap.confファイル

certmap.confファイルには、issuerDNによって指定されたLDAPエントリに証明書をマップする方法が記述されています。

1.1.3.1 構文

certmap name issuerDNname:property1 [value1]
name:property2 [value2]
...

デフォルトの証明書はdefaultという名前で、デフォルトのissuerDNもdefaultという名前です。したがって、certmap.confファイルで定義する最初の行は、次のようにする必要があります。

certmap default default

コメントであることを示すには、行頭に#を使用します。

1.1.3.2 プロパティ

表1-1に、certmap.confファイルのプロパティを示します。

表1-1 certmap.confのプロパティ

属性

指定できる値

デフォルト値

説明

DNComps

説明を参照

コメント・アウト

証明書をユーザー・エントリにマップする場合に、LDAP検索の実行用にベースDNを構成するために使用します。値は次のとおりです。

- コメント・アウト - ユーザーのDNを証明書からそのまま取得します。

- 空 - LDAPツリー全体を検索します(DN == 接尾辞)。

- カンマ区切りの属性 - DNを構成します。

FilterComps

説明を参照

コメント・アウト

証明書をユーザー・エントリにマップする場合に、LDAP検索の実行用にフィルタを構成するために使用します。値は次のとおりです。

- コメント・アウトまたは空 - フィルタを"objectclass=*"に設定します。

- カンマ区切りの属性 - フィルタを構成します。

verifycert

onまたはoff

off (コメント・アウト)

証明書を検証するかどうかを指定します。

CmapLdapAttr

LDAP属性の名前

certSubjectDN (コメント・アウト)

証明書のDNを含むLDAPデータベースの属性の名前を指定します。

library

共有libまたはdllへのパス

なし

カスタム証明書マッピング・コードのライブラリ・パスを指定します。

InitFn

初期化関数の名前

なし

libraryによって参照される証明書マッピング・コードの初期化関数を指定します。

1.1.4 NZウォレット・ファイル

ウォレット・ファイルは、INSTANCE_HOME/configディレクトリに格納されます。

- ewallet.p12 - PINを持つ編集可能なウォレット

- cwallet.sso - 難読化したパスワードを持つ単一のサインオン・ウォレット(PINは不要)

NZウォレットには3つの操作モードがあります。3つのモードはすべてOTDコア・サーバーでサポートされますが、adminはすべてをサポートしていません。次に、各モードを示します。

- ewallet.p12のみ - OTDがウォレットに読取り専用モードでアクセスする、またはadminが読取り書込みモードでウォレットにアクセスする、いずれの場合でも、PINが常に必要です。OTDにより、起動時にPINが求められます。PINは、server.xmlに格納されません。

- cwallet.ssoのみ - orapkiでは、"自動ログインのみ"モードと呼ばれます。OTDがウォレットに読取り専用モードでアクセスする、またはadminが読取り書込みモードでウォレットにアクセスする、いずれの場合でも、PINは不要です。

- ewallet.p12およびcwallet.sso - orapkiでは"自動ログイン"モードと呼ばれます。OTDが読取り専用モードでウォレットにアクセスするためにPINは不要ですが、adminが読取り書込みモードでウォレットにアクセスするためにはPINが必要です。ewallet.p12が編集されます。それぞれの編集の後、ewallet.p12はcwallet.ssoに変換されます。

Oracle orapkiコマンドライン・ユーティリティを使用して、ウォレットなどの公開鍵インフラストラクチャ(PKI)要素を管理します。詳細は、『Oracle Databaseセキュリティ・ガイド』の付録のorapkiユーティリティを使用したPKI要素の管理に関する項を参照してください

1.1.5 デフォルト・パス

Oracle® Fusion Middlewareで使用されるデフォルト・パスを次に示します。表1-2に、デフォルト・パスおよびファイル名を示します。

表1-2 デフォルト・パス

プレースホルダ

説明

ORACLE_HOME

Oracle® Fusion Middlewareがインストールされているディレクトリ。

INSTANCE_HOME

Oracle® Fusion Middleware管理サーバーおよびOracle® Fusion Middlewareインスタンスに関連するファイルが含まれるディレクトリ。

1.2 ディレクトリ構造

この項では、Oracle Fusion Middlewareの初回インストール時に作成されるディレクトリ構成について説明します。通常のOTDインストール環境では、admin-serverディレクトリとnet-server-idインスタンス・サブディレクトリを除き、すべてのディレクトリはORACLE_HOMEディレクトリに配置されます。admin-serverディレクトリとnet-server-idサブディレクトリは、INSTANCE_HOMEディレクトリに配置されます。管理サーバーまたは管理ノードを作成するには、configure-serverコマンドを実行する必要があります。OTDで管理ノードを作成する場合、管理サーバーが起動して実行されていることを確認してください。新しく作成された管理ノードは、管理サーバーに登録されます。インスタンスを作成する前に、configure-serverコマンドを実行して管理サーバーを作成します。その後、create-instanceコマンドを実行してOTDでインスタンスを作成します。CLIコマンドの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照してください。これらのディレクトリに対応するデフォルトの場所の詳細は、1.1.5項「デフォルト・パス」を参照してください。

次のディレクトリは、Oracle® Fusion Middlewareのインストール・ディレクトリであるORACLE_HOMEに存在します。

- bin

- Legal

- lib

- admin-server

- net-server-id

1.2.1 bin

binディレクトリには、WebLogic Scripting Tool CommandインタフェースのWLSTなど、Oracle Traffic Directorを管理するためのコマンドが含まれます。

1.2.2 Legal

Legalディレクトリには、Oracle® Fusion Middlewareソフトウェアに関連するサード・パーティ情報が含まれます。

1.2.3 lib

libディレクトリには、内部バイナリ、スクリプト、ライブラリおよびバンドル・プラグインが含まれます。これらはプライベート・ファイルであり、内部でのみ使用されます。

admin-serverディレクトリとnet-server-idサブディレクトリに関する詳細は、次を参照してください。

- admin-server

- net-server-id

1.2.4 admin-server

admin-serverディレクトリには次のサブディレクトリがあります。

- bin - Oracle® Fusion Middlewareを起動、停止および再起動するために使用するバイナリ・ファイルが含まれます。UNIXシステムでは、このディレクトリにログのローテーションに必要なファイルも含まれます。

- config - 管理サーバーのプライベート構成ファイルが含まれます。これらのファイルは内部で使用されます。

- config-store - 管理サーバーがサーバー構成情報を追跡するために使用するファイルが含まれます。

注意:
このディレクトリのファイルは、Oracle® Fusion Middlewareにより作成され、内部で使用されます。編集、スクリプト実行またはその他の方法でconfig-storeディレクトリのファイルにアクセスしないでください。

- generated - JavaServer Pages (JSP)に対応するJavaクラス・ファイルなど、インスタンスによって生成されたファイルが含まれます。

- logs - サーバー・インスタンスによって生成されたエラー・メッセージまたはアクセス・ログ・ファイルが含まれます。

1.2.5 net-server-id

A net-server-idディレクトリは、OTDでインスタンスを作成するたびに作成されます。このディレクトリには、次のサブディレクトリとファイルが含まれます。

- bin - サーバーを起動、停止、再起動および再構成するためのコマンドが含まれます。また、ログ・ファイルをローテーションするためのコマンドも含まれます。

- config - 次のインスタンス固有の構成ファイルが含まれます。

- <C1>-obj.conf - 仮想サーバー固有のディレクトリ。

- obj.conf - クライアントからのHTTPリクエストを処理するOracle® Fusion Middlewareディレクティブ。

- pkcs11.txt - NSS PKCS #11モジュール・データベース。

- server.xml - サーバー構成設定の大部分。

- logs - このサーバー・インスタンスによって生成されたログ・ファイルが含まれます。

1.3 動的再構成

動的再構成によって、変更内容を有効化するために停止および再起動せずに、実行中のOracle Traffic Directorの構成を変更できます。

動的な構成は、次の場合に発生します。

- 管理コンソールまたはCLIを通じて構成をデプロイする場合

- サーバー・インスタンスのbinディレクトリに含まれるreconfigスクリプトを実行する場合

サーバーを再起動せずにobj.confファイルの構成設定を動的に変更できます。また、server.xmlファイルのほとんどの設定もサーバーを再起動せずに変更できます。サーバーを再起動する必要がある場合は、構成をデプロイするかreconfigコマンドを実行する際に、サーバー・ログに警告メッセージが出現します。

server.xmlの次の構成パラメータは、動的に再構成できません。

- user

- temp-path

- log (ログ・レベルを除く)

- thread-pool

- pkcs11

- stats

- dns

- dns-cache

- ssl-session-cache

- access-log-buffer

reconfigコマンドを実行すると、新しい構成オブジェクトが作成され、その新しい構成オブジェクトに基づいてすべての新しい着信リクエストが処理されます。現在の構成オブジェクトは、そのオブジェクトを使用しているHTTPリクエストが存在しない場合、削除されます。

動的再構成中に間違った構成が行われると、サーバーにエラー・メッセージが表示されます。サーバーは、正常な最後の構成によって指定されているログ・ファイルにエラー・メッセージを記録します。

一部の間違った構成では、警告メッセージが表示されますが、その構成はサーバーに拒否されません。それ以外の間違ったな構成は、エラー・メッセージをトリガーし、その構成はサーバーに拒否されます。構成がサーバーの起動時に拒否されると、サーバーは起動しません。構成がサーバーの動的再構成時に拒否されると、サーバーは正常な最後の構成に戻ります。

2 server.xmlの構文および使用

server.xmlファイルには、サーバー構成の大部分が含まれます。この章では、server.xmlファイルの基本構文と、サーバー機能の構成に使用される要素の概要について説明します。この章のトピックは、次のとおりです:

- server.xmlの概要

- server.xmlの理解

- サンプルserver.xmlファイル

2.1 server.xmlの概要

server.xmlファイルには、構成を定義する要素が含まれます。server.xmlファイルは、
INSTANCE_HOME/net-server-id/configディレクトリにあります。

ファイル・エンコーディングはUTF-8であり、UNIXテキスト・エディタとの互換性が維持されています。

2.1.1 server.xmlファイルの編集

server.xmlファイルの構造は、serverを最上位の要素とする階層型です。server要素には多くのサブ要素があり、それらのサブ要素の多くには独自のサブ要素があります。

一般的に、server.xmlを直接編集する必要はありません。かわりに、管理者コンソールやtadmコマンドライン・インタフェースを使用して、server.xmlファイルの値を変更します。管理者コンソールやtadmコマンドライン・インタフェースを使用した変更は、server.xmlファイルに影響します。スクリプトの作成時にtadmを使用してserver.xmlファイルを変更することで、将来の互換性が確保されます。server.xmlファイルを直接編集する場合、編集後のserver.xmlファイルが有効であることを確認してください。

2.1.1.1 要素値の編集

server.xmlファイルの値を変更するには、編集する要素に関連付けられたタグ間の値を変更します。
たとえば、<log-level>の値をNOTIFICATION:1からTRACE:1に変更するには、server要素のlog子要素を見つけます。この例では、次の行があります。

<log>
<log-file>../logs/server.log</log-file>
<log-level>NOTIFICATION:1</log-level>
</log>

For example:

NOTIFICATION:1のログ・レベルを変更します

<log-level>NOTIFICATION:1</log-level>

これをTRACE:1に変更します

<log-level>TRACE:1</log-level>

server.xmlファイルの変更後、ほとんどの変更を反映するには、構成をデプロイする必要があります。コマンドライン・インタフェースのコマンドtadm pull-configを使用して、変更したserver.xmlファイルをプルし、管理者コンソールまたはtadm deploy-configコマンドを使用して変更をデプロイします。変更を有効にするにはサーバーの再起動が必要な場合があります。再起動が必要または不要な変更の詳細は、1.3項「動的再構成」を参照してください。

2.1.1.2 要素の追加

ファイルに新しい要素を追加するには、要素と必須サブ要素(存在する場合)を追加します。各要素は、<virtual-server>などのタグで始まり、</virtual-server>などの終了タグで終わります。タグでは大文字と小文字が区別されます。

2.1.1.3 server.xmlの検証

server.xmlファイルの編集後、サーバーを起動するか動的に再構成すると、Oracle Traffic Directorによって自動的にXMLコードが検証されます。

startservスクリプトの-configtestオプションを使用して構成を検証することもできます。インスタンスのbinディレクトリから、次のコマンドを実行します。

startserv -configtest

2.2 server.xmlの理解

現在の環境のserver.xmlファイルを変更するには、どの要素に関連設定が含まれるかを理解している必要があります。次の項では、各機能領域を構成する要素を簡単に説明します。

- サーバー・プール

- ヘルス・チェック

- 高可用性

- HTTPプロトコル

- ロギングおよび監視

- パフォーマンス・チューニング

- SSL、TLSおよびPKCS #11

- 変数

- 仮想サーバー

server.xmlのすべての要素とそのサブ要素の詳細は、「server.xmlの要素」を参照してください。

2.2.1 サーバー・プール

origin-server要素は、サーバー・プールのメンバーを定義します。origin-server-pool要素は、ロード・バランシング・リクエストで使用されるオリジン・サーバーのプールを構成します。オリジン・サーバーは、Oracle WebLogic ServerインスタンスやOracle iPlanet Web Serverインスタンスなどのバックエンド・サーバーであり、Oracle Traffic Directorはクライアントから受信したリクエストをこのサーバーに転送し、レスポンスをこのサーバーから受信します。同じサービスを提供するオリジン・サーバーのセットによって、オリジン・サーバー・プールが構成されます。詳細は、3.1.19項「origin-server-pool」、3.1.20項「origin-server」、3.1.24項「server」を参照してください。

2.2.2 ヘルス・チェック

health-check要素は、オリジン・サーバー・プールの各オリジン・サーバーのステータスを決定するために使用されるパラメータを構成します。health-check要素は、origin-server-pool要素のサブ要素です。詳細は、3.1.11項「health-check」および3.1.19項「origin-server-pool」を参照してください。

2.2.3 高可用性

failover-group要素は、VIP (仮想IP)、プライマリ・サーバーとして指定された1つのインスタンス、およびバックアップ・サーバーとして指定されたもう1つのインスタンスをグループ化したものです。アクティブ/パッシブまたはアクティブ/アクティブのクラスタ・フェイルオーバー構成は、フェイルオーバー・グループとして表されます。failover-group要素は、フェイルオーバー・グループを定義します。詳細は、3.1.10項「failover-group」を参照してください。

2.2.4 HTTPプロトコル

http要素は、一般的なHTTPプロトコル・オプションを構成します。keep-alive要素は、HTTPキープ・アライブ接続管理を構成します。http-listener要素は、サーバーが新しいHTTP接続をリスニングするポートおよびIPアドレスを構成します。virtual-server要素は、サーバーがHTTPリクエストを処理する方法を構成します。詳細は、3.1.12項「http」、3.1.15項「keep-alive」、3.1.13項「http-listener」および3.1.37項「virtual-server」を参照してください。

2.2.5 ロギングおよび監視

access-log要素は、アクセス・ログのファイル名と形式を構成します。access-log-buffer要素は、アクセス・ログの更新頻度と、アクセス・ログのエントリの順序を構成します。詳細は、3.1.1項「access-log」および3.1.2項「access-log-buffer」を参照してください。ログ・ファイル形式の詳細は、付録B「カスタム・アクセス・ログ・ファイル形式の使用」を参照してください。

log要素は、サーバー・ログのファイル名と内容を構成します。event要素は、アクセス・ログとサーバー・ログのローテーションを構成します。詳細は、3.1.17項「log」および3.1.9項「event」を参照してください。

snmp要素は、Simple Network Management Protocol (SNMP)を構成し、stats要素は統計収集を構成します。詳細は、3.1.25項「snmp」および3.1.29項「stats」を参照してください。

2.2.6 パフォーマンス・チューニング

thread-pool要素は、リクエストの処理に使用されるスレッドの数と、サーバーがキューに入れるHTTP接続の最大数を構成します。詳細は、3.1.34項「thread-pool」を参照してください。

keep-alive要素は、HTTPキープ・アライブ接続管理を構成します。詳細は、3.1.15項「keep-alive」を参照してください。dns-cache要素は、DNSキャッシュを構成します。詳細は、3.1.8項「dns-cache」を参照してください。

2.2.7 SSL、TLSおよびPKCS #11

ssl要素は、Secure Sockets Layer (SSL)およびTransport Layer Security (TLS)を構成します。SSLとTLSは、HTTPリスナーごとに別々に構成できます。詳細は、3.1.26項「ssl」および3.1.13項「http-listener」を参照してください。

pkcs11要素は、証明書失効リスト(CRL)やサード・パーティの暗号モジュールを含むPKCS #11サブシステムを構成します。

2.2.8 変数

variable要素は、式、ログ形式およびobj.confパラメータで使用される変数を定義します。variable要素の詳細は、3.1.36項「variable」を参照してください。変数および式の使用の詳細は、付録A「変数、式、ワイルドカードおよび文字列補間の使用」を参照してください。

2.2.9 仮想サーバー

virtual-server要素は、仮想サーバーを構成します。各仮想サーバーは、1つ以上のHTTPリスナーからのHTTPリクエストを処理します。http-listener要素は、HTTPリスナーを構成します。詳細は、3.1.37項「virtual-server」および3.1.13項「http-listener」を参照してください。

変数は、2.2.8項「変数」で説明したとおり、variable要素を使用して仮想サーバー内で定義できます。

2.3 サンプルserver.xmlファイル

例2-1は、server.xmlファイルの一部を示しています。

例2-1 server.xmlファイル

<?xml version="1.0" encoding="UTF-8" ?>

<!--
Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved
-->

<server>
<cluster>
<local-host>www.example.com</local-host>
<instance>
<host>www.example.com</host>
</instance>
</cluster>
<log>
<log-file>../logs/server.log</log-file>
<log-level>NOTIFICATION:1</log-level>
</log>
<platform>64</platform>
<temp-path>/tmp/net-test-8a4af444</temp-path>
<user>myuser</user>
<access-log>
<file>../logs/access.log</file>
</access-log>
<http-listener>
<name>http-listener-1</name>
<port>1894</port>
<server-name>www.example.com</server-name>
<default-virtual-server-name>test</default-virtual-server-name>
</http-listener>
<virtual-server>
<name>test</name>
<http-listener-name>http-listener-1</http-listener-name>
<host>www.example.com</host>
<object-file>test-obj.conf</object-file>
</virtual-server>
<origin-server-pool>
<name>origin-server-pool-1</name>
<type>http</type>
<origin-server>
<host>www.example.com</host>
<port>20005</port>
</origin-server>
</origin-server-pool>
</server>

3 server.xmlの要素

この章では、server.xmlファイルの要素をアルファベット順に説明します。

3.1 要素のリスト

この項では、server.xmlファイルの要素をアルファベット順に説明します。

- access-log

- access-log-buffer

- cluster

- cert

- crl

- dns

- dns-cache

- event

- failover-group

- health-check

- http

- http-listener

- instance

- keep-alive

- localization

- log

- log

- origin-server-pool

- origin-server

- property

- proxy-cache

- qos-limits

- server

- snmp

- ssl

- ssl3-tls-ciphers

- ssl-session-cache

- stats

- tcp-access-log

- tcp-listener

- tcp-proxy

- tcp-thread-pool

- thread-pool

- time

- variable

- virtual-server

- webapp-firewall-ruleset

3.1.1 access-log

access-log要素は、アクセス・ログの設定を構成します。この要素は、server要素内に0回以上出現し、virtual-server要素内に0回以上出現します。詳細は、3.1.24項「server」および3.1.37項「virtual-server」を参照してください。

表3-1に、access-logのサブ要素を示します。

表3-1 access-logのサブ要素

要素

出現回数

説明

enabled

0または1

サーバーでこのアクセス・ログに書き込むかどうかを指定します。デフォルト値: true。

name

0または1

アクセス・ログを一意に識別する名前。名前を指定すると、サーバーはこのアクセス・ログに自動的に書込みを行いません。かわりに、obj.confのAddLogディレクティブでこのアクセス・ログを明示的に構成します。

file

1

アクセス・ログのファイル名。相対パスを使用する場合、サーバーのconfigディレクトリが基準となります(../logs/access.logなど)。

format

0または1

アクセス・ログ・エントリの形式。デフォルト形式は、拡張カスタム・ログ形式です。アクセス・ログ形式の詳細は、付録B「カスタム・アクセス・ログ・ファイル形式の使用」を参照してください。

関連項目:
「access-log-buffer」、「event」、「log」

3.1.2 access-log-buffer

access-log-buffer要素は、アクセス・ログ・バッファリング・サブシステムの設定を構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-2に、access-log-bufferのサブ要素を示します。

表3-2 access-log-bufferのサブ要素

要素

出現回数

説明

direct-io

0または1

ファイル・システム・キャッシュのアクセス・ログ書込みを行うかどうかを指定します。デフォルト値: false。これは、ファイル・システムでキャッシュに書き込むことを示します。値をtrueに設定すると、ファイル・システムでキャッシュに書き込まないことを示します。設定は単なる推奨であり、サーバーまたはオペレーティング・システムは、この設定を無視することがあります。

enabled

0または1

サーバーでアクセス・ログ・エントリをバッファするかどうかを指定します。デフォルト値: true。

buffer-size

0または1

個々のアクセス・ログ・バッファのサイズ(バイト単位)。値として、4096 - 1048576を指定できます。

max-buffers

1

1つのサーバー当たりのアクセス・ログ・バッファの最大数を指定します。値: 1 - 65536。

max-buffers-per-file

0または1

1つのアクセス・ログ・ファイル当たりのアクセス・ログ・バッファの最大数を指定します。

max-age

0または1

特定のアクセス・ログ・エントリをバッファするための最大時間(秒単位)。値として、0.001 - 3600を指定できます。

関連項目:
「access-log」、「event」、「log」

3.1.3 cluster

cluster要素は、サーバーが属するクラスタを定義します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-3に、clusterのサブ要素を示します。

表3-3 clusterのサブ要素

要素

出現回数

説明

local-host

1

インスタンスのネットワーク・アドレスを定義します。値は、instance要素のhost値です。詳細は、3.1.14項「instance」を参照してください。

instance

1以上

サーバー・クラスタのメンバーを定義します。詳細は、3.1.14項「instance」を参照してください。

failover-group

0以上

フェイルオーバー・グループの構成を定義します。詳細は、3.1.10項「failover-group」を参照してください。

3.1.4 cert

cert要素は、証明書を一意に識別します。この要素は、ssl要素内に0回以上出現します。詳細は、3.1.26項「ssl」を参照してください。

表3-4に、certのサブ要素を示します。

表3-4 certのサブ要素

要素

出現回数

説明

subject

1

必須。証明書のサブジェクト名。

serial-number

0または1

このフィールドをオプションで指定すると、同一のサブジェクト名を持つ複数の証明書の間の曖昧性を解消できます。このフィールドは、16進数で指定し、大文字/小文字は区別されません。0x接頭辞はオプションです。

issue

0または1

このフィールドをオプションで指定すると、同一のサブジェクト名を持つ複数の証明書の間の曖昧性を解消できます。

3.1.5 crl

crl要素は、証明書執行リスト(CRL)を一意に識別します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-5に、crlのサブ要素を示します。

表3-5 crlのサブ要素

要素

出現回数

説明

enabled

0または1

CRLを有効にするかどうかを定義します。デフォルト値: true。

crl-path

0または1

CRLへのパスを定義します。詳細は、3.1.14項「instance」を参照してください。

crl-cache-size

0または1

キャッシュ・サイズを、0から2,147,483,647バイトの範囲で定義します。デフォルト値: 52428800。

require-crls

0または1

SSL/TLSハンドシェイク中、ピア証明書の確認でCRLが必要かどうかを指定します。これはlibproxy (バックエンド)およびクライアント(フロントエンド)の認証の両方に影響します。デフォルト値: false。

3.1.6 cipher

ssl3-tls-ciphers要素は、暗号を有効化します。この要素は、ssl3-tls-ciphers要素内に0または1回出現します。詳細は、3.1.27項「ssl3-tls-ciphers」を参照してください。

もし、ssl3-tls-ciphersが構成に存在しない場合、各暗号のデフォルトの実施可能な値が使用されます。もし、ssl3-tls-ciphersが存在する場合、cipher要素を有効化する各暗号に含める必要があります。

表3-6に、cipherのサブ要素を示します。

表3-6 cipherのサブ要素

要素

出現回数

説明

SSL_RSA_WITH_RC4_128_SHA

0または1

実行時にSSL_RSA_WITH_RC4_128_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_RSA_WITH_AES_128_GCM_SHA256

0または1

実行時にTLS_RSA_WITH_AES_128_GCM_SHA256暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_RSA_WITH_AES_256_GCM_SHA384

0または1

実行時にTLS_RSA_WITH_AES_256_GCM_SHA384暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_RSA_WITH_AES_128_CBC_SHA256

0または1

実行時にTLS_RSA_WITH_AES_128_CBC_SHA256暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_RSA_WITH_AES_256_CBC_SHA256

0または1

実行時にTLS_RSA_WITH_AES_256_CBC_SHA256暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256

0または1

実行時にTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384

0または1

実行時にTLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

0または1

実行時にTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

0または1

実行時にTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

0または1

実行時にTLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

0または1

実行時にTLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

0または1

実行時にTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

0または1

実行時にTLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384暗号スイートを有効にするかどうかを指定します。TLS 1.2でのみ有効。デフォルト値: true。

SSL_RSA_WITH_3DES_EDE_CBC_SHA

0または1

実行時にSSL_RSA_WITH_3DES_EDE_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

0または1

実行時にTLS_ECDHE_RSA_WITH_AES_128_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDH_RSA_WITH_AES_128_CBC_SHA

0または1

実行時にTLS_ECDH_RSA_WITH_AES_128_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDH_RSA_WITH_RC4_128_SHA

0または1

実行時にTLS_ECDH_RSA_WITH_RC4_128_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA

0または1

実行時にTLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDH_RSA_WITH_AES_256_CBC_SHA

0または1

実行時にTLS_ECDH_RSA_WITH_AES_256_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA

0または1

実行時にTLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDH_ECDSA_WITH_RC4_128_SHA

0または1

実行時にTLS_ECDH_ECDSA_WITH_RC4_128_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA

0または1

実行時にTLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA

0または1

実行時にTLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

0または1

実行時にTLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_RSA_WITH_AES_128_CBC_SHA

0または1

実行時にTLS_RSA_WITH_AES_128_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_RSA_WITH_AES_256_CBC_SHA

0または1

実行時にTLS_RSA_WITH_AES_256_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA

0または1

実行時にTLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDHE_ECDSA_WITH_RC4_128_SHA

0または1

実行時にTLS_ECDHE_ECDSA_WITH_RC4_128_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA

0または1

実行時にTLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDHE_RSA_WITH_RC4_128_SHA

0または1

実行時にTLS_ECDHE_RSA_WITH_RC4_128_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA

0または1

実行時にTLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA

0または1

実行時にTLS_ECDHE_RSA_WITH_AES_256_CBC_SHA暗号スイートを有効にするかどうかを指定します。デフォルト値: true。

関連項目:
http-listener、ssl、ssl-session-cache

3.1.7 dns

dns要素は、サーバーによるドメイン・ネーム・システム(DNS)の使用方法を構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-7に、dnsのサブ要素を示します。

表3-7 dnsのサブ要素

要素

出現回数

説明

enabled

0または1

サーバーでDNS参照を実行するかどうかを指定します。デフォルト値: false。

async

0または1

オペレーティング・システムの同期リゾルバではなく、サーバー独自の非同期DNSリゾルバを使用するかどうかを指定します。デフォルト値: true。

timeout

0または1

非同期DNS参照をタイムアウトするまでの期間(秒単位)を指定します。値として、0.001 - 3600を指定できます。

関連項目:
dns-cache

3.1.8 dns-cache

dns-cache要素は、DNSキャッシュを構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-8に、dns-cacheのサブ要素を示します。

表3-8 dns-cacheのサブ要素

要素

出現回数

説明

enabled

0または1

サーバーでDNS参照結果についてキャッシュに書き込むかどうかを指定します。デフォルト値: true。

max-age

0または1

エントリをキャッシュで保持する期間(秒単位)を指定します。値として、1 - 31536000を指定できます。

max-entries

0または1

キャッシュに書き込むDNS参照結果の最大数を指定します。値として、32 - 32768を指定できます。

関連項目:
dns

3.1.9 event

event要素は、反復イベントを構成します。この要素は、server要素内に0回以上出現します。詳細は、3.1.24項「server」を参照してください。

表3-9に、eventのサブ要素を示します。

表3-9 eventのサブ要素

要素

出現回数

説明

enabled

0または1

実行時にイベントを有効にするかどうかを指定します。デフォルト値: true。

time

0以上

イベントが発生する特定の時間を構成します。詳細は、3.1.35項「time」を参照してください。

interval

0または1

イベントが発生する間隔(秒単位)を指定します。値として、60 - 86400を指定できます。

rotate-log

0または1

ログ・ファイルをローテーションします。デフォルト値: false。

rotate-access-log

0または1

アクセス・ログ・ファイルをローテーションします。デフォルト値: false。

command

0以上

イベントを起動するために実行するコマンド。

reconfig

0または1

サーバーを動的に再構成します。デフォルト値: false。

restart

0または1

サーバーを再起動します。デフォルト値: false。

description

0または1

イベントの説明。この要素の値は、テキスト形式です。

関連項目:
「access-log」、「log」

3.1.10 failover-group

failover-group要素は、フェイルオーバー・グループを定義します。この要素は、cluster要素内に0または1回出現します。詳細は、3.1.3項「cluster」を参照してください。

表3-10に、failover-groupのサブ要素を示します。

表3-10 failover-groupのサブ要素

要素

出現回数

説明

ip

1

フェイルオーバー・グループの仮想IPを指定します。値は、構成のフェイルオーバー・グループ全体を通じて一意である必要があります。

network-prefix

0または1

ネットワークの識別に使用するビット数としてサブネット・マスクを指定します。値: 正の整数で、IPV4の場合はデフォルトで24 (最大32)。デフォルト値: IPV6の場合は64 (最大128)

router-id

0または1

フェイルオーバー・グループのルーターIDを指定します。値は、フェイルオーバー・グループ全体を通じて一意である必要があります。これは、同じVIPに対応するすべての参加ルーターのルーター・グループを識別するために使用されます。値は正の整数です。値の範囲: 1 - 255。デフォルト値: 255。

failover-instance

1以上

failover-groupに含まれるインスタンスを定義します。

host

1

インスタンスが作成された管理ノードのホスト名を指定します。これは、cluster要素のinstance要素またはhost要素の1つに一致する必要があります。

priority

0または1

インスタンスの優先度の値を指定します。この値によって、インスタンスがfailover-groupのプライマリかバックアップかを識別します。値: 正の整数。値の範囲: 1 - 254。デフォルト値は250です。

network-interface

1

このインスタンスが作成されてVIPが管理されるノード上のネットワーク・インタフェースを示します。

3.1.11 health-check

health-check要素は、オリジン・サーバー・プールの各オリジン・サーバーのステータスを決定するために使用されるパラメータを構成します。この要素は、origin-server-pool要素内に0または1回出現します。詳細は、3.1.19項「origin-server-pool」を参照してください。

表3-11に、health-checkのサブ要素を示します。

表3-11 health-checkのサブ要素

要素

出現回数

説明

HTTPサーバーでのTCPヘルス・チェック

TCPサーバーでのTCPヘルス・チェック

protocol

0または1

Oracle Traffic Directorが、オリジン・サーバーの状態を判別するために使用する接続のタイプ(HTTPまたはTCP、もしくは外部実行可能ファイル)を指定します。また、外部ヘルス・チェック実行可能ファイルを指定します。

TCP: Oracle Traffic Directorは、各オリジン・サーバーに対してTCP接続のオープンを試みます。この試行が成功するか失敗するかによって、Oracle Traffic Directorがオリジン・サーバーをオンラインまたはオフラインのどちらと見なすかが決まります。

HTTP: Oracle Traffic Directorは、プール内の各オリジン・サーバーにHTTP GETまたはOPTIONSリクエストを送信してレスポンスを確認し、オリジン・サーバーの可用性および状態を判別します。

EXTERNAL: Oracle Traffic Directorは、ヘルス・チェックのために、<command>で指定された実行可能ファイルを呼び出します。

デフォルト値: HTTP。

有効

有効。HTTPは、typeサブ要素でtcpを指定するorigin-server-pool要素の有効な値ではありません。

interval

0または1

連続するヘルス・チェック操作間の時間間隔(秒単位)を指定します。デフォルト値: 30。

有効

有効

failover-threshold

0または1

サーバーの停止としてマークする連続障害の数を示します。これは、正の整数で示します。可能な最大値は256です。デフォルト値: 3。

有効

有効

timeout

0または1

接続のタイムアウト値を指定します。これは、正の整数で秒数を示します。デフォルト値: 5。

有効

有効

command

0または1

外部ヘルス・チェック実行可能ファイルのフル・パスを指定します。プロトコルがEXTERNALの場合には、このパラメータを構成する必要があります

該当なし

該当なし

request-method

0または1

HTTPのヘルス・チェック操作で使用するメソッドを指定します。デフォルト値: OPTIONS。

無視

無視

request-uri

0または1

HTTPのヘルス・チェック操作で使用するURIを指定します。デフォルト値: "/"。

無視

無視

response-code-match

0または1

変更された正規表現で、正常なオリジン・サーバーで受入れ可能なレスポンス・ステータス・コードのタイプを指定するために使用します。正規表現は、数字またはxのみを含む3文字のパターンの組合せです。xは数字を表します。たとえば、次の3つの表現は有効です。
200, 2xx|304, 1xx|2xx|3xx|4xx。

パラメータを指定しない場合、5xxのサーバー・エラーを除く他のすべてのコードが受入れ可能とみなされます。これは、プロトコルがHTTPの場合にのみ適用されます。

無視

無視

response-body-match

0または1

オリジン・サーバーの稼働状態を確認するためにHTTPレスポンス本文と一致させる正規表現。これは、プロトコルがHTTPの場合にのみ適用されます。

無視

無視

response-body-match-size

0または1

一致させるレスポンス本文の最大長を指定します。デフォルト値: 2048。

無視

無視

dynamic-server-discovery

0または1

サーバーでOracle WebLogic Serverクラスタ・ノードを動的に検出してプールに追加するかどうかを指定します。デフォルト値: false。

HTTPヘルス・チェックに有効

無視

3.1.12 http

http要素は、様々なHTTPプロトコル・オプションの設定を構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-12に、httpのサブ要素を示します。

表3-12 httpのサブ要素

要素

出現回数

説明

version

0または1

サーバーでサポートするHTTPプロトコルの最高バージョンを指定します。デフォルトのHTTPバージョン文字列はHTTP/1.1です。

server-header

0または1

サーバーのソフトウェアやバージョンなどのサーバー・ヘッダー情報を指定します。デフォルトのサーバー・ヘッダーはOracle-Traffic-Director/11.1.1.6.0です。

body-buffer-size

0または1

OTDがobj.confの$body変数を使用して公開するリクエスト本文コンテンツの最大サイズ(バイト単位)を指定します。値として、0 - 2147483647を指定できます。デフォルト値: 1024。

注意: すべての値に単位を指定する必要があります。

request-header-buffer-size

0または1

HTTPリクエスト・ヘッダーを読み取るために使用するバッファのサイズ(バイト単位)を指定します。値として、0 - 2147483647を指定できます。

strict-request-headers

0または1

サーバーで一定の不正なHTTPリクエスト・ヘッダーを拒否するかどうかを示します。デフォルト値: false。

max-request-headers

0または1

HTTPリクエスト・ヘッダーのヘッダー・フィールドの最大数を指定します。値として、1 - 512を指定できます。

output-buffer-size

0または1

HTTPレスポンスのバッファのサイズ(バイト単位)を指定します。値として、0 - 2147483647を指定できます。

max-unchunk-size

0または1

サーバーがチャンクを解除する、チャンク済HTTPリクエスト本文の最大サイズ(バイト単位)を指定します。値として、0 - 2147483647を指定できます。

unchunk-timeout

0または1

チャンク済HTTPリクエスト本文の到着をサーバーで待機する最大時間(秒単位)を指定します。値として、0 - 3600を指定できます(タイムアウトなしの場合は-1)。

io-timeout

0または1

サーバーで個々のパケットを待機する最大時間(秒単位)を指定します。値として、0 - 3600を指定できます(タイムアウトなしの場合は-1)。

request-header-timeout

0または1

サーバーで完全なHTTPリクエスト・ヘッダーを待機する最大時間(秒単位)を指定します。値として、0 - 604800を指定できます(タイムアウトなしの場合は-1)。

request-body-timeout

0または1

サーバーで完全なHTTPリクエスト本文を待機する最大時間(秒単位)を指定します。値として、0 - 604800を指定できます(タイムアウトなしの場合は-1)。

favicon

0または1

サーバーが独自の組込みアイコン・ファイルを使用してfavicon.icoに対するリクエストに応答するかどうかを指定します。デフォルト値: true。

etag

0または1

サーバーのレスポンスにEtagヘッダー・フィールドを含めるかどうかを制御します。デフォルト値: true。

ecid

0または1

サーバーで実行コンテキストを生成、伝播および記録するかどうかを指定します。ECIDの値は一意の識別子で、各イベントを同一のリクエスト実行フローの一部として相関させるために使用できます。たとえば、特定のリクエストに関連するものとして識別されるイベントは、通常、同じECID値を持ちます。ただし、ECID文字列自体の形式は、変更しやすい内部メカニズムによって決定されるため、その形式に依存関係を持ったり配置してはなりません。ECIDは、実行コンテキストの一部として定義されます。実行コンテキストは、ECIDとRIDで構成されます。実行コンテキスト全体(ECIDとRIDの組合せ)を単にECIDと呼ぶこともあります。デフォルト値: true。

websocket-strict-upgrade

0または1

WebSocketアップグレード・リクエスト時の厳密なRFC 6455準拠を有効/無効にします。デフォルト値: false。

関連項目:
「http-listener」、「keep-alive」、「thread-pool」、「virtual-server」

3.1.13 http-listener

http-listener要素は、HTTPリスナーを構成します。この要素は、server要素内に0回以上出現します。詳細は、3.1.24項「server」を参照してください。

表3-13に、http-listenerのサブ要素を示します。

表3-13 http-listenerのサブ要素

要素

出現回数

説明

enabled

0または1

接続リクエストを受け入れるようにHTTPリスナーを有効にするかどうかを指定します。デフォルト値: true。

name

1

HTTPリスナーを一意に識別する名前を指定します。

ip

0または1

リスニングするIPアドレスを指定します。この要素の値は、特定のIPアドレスにするか、またはすべてのIPアドレスでリスニングする場合はアスタリスク(*)にします。

port

1

リスニングするポートを指定します。この要素の値は、ポート番号です。

acceptor-threads

0または1

このリスナーが受信する接続の受入れ専用スレッドの数を指定します。値として、1 - 128を指定できます。

server-name

1

デフォルトのサーバー名を指定します。クライアントに送信するURLのホスト名セクションに配置する内容をサーバーに指示します。これは、サーバーが自動的に生成するURLに影響しますが、サーバーに格納されているディレクトリおよびファイルのURLには影響しません。サーバーで別名を使用する場合、この名前は別名にする必要があります。コロンとポート番号を追加すると、サーバーがクライアントに送信するURLでそのポートが使用されます。

値: 値には、スキーム(接頭辞http://など)とポート接尾辞(:80など)を含めることができます。

blocking-io

0または1

サーバーでブロッキングI/Oを使用するかどうかを指定します。デフォルト値: false。

family

0または1

オリジン・サーバーに接続するために使用するソケット・ファミリを指定します。値: inet、inet6、inet-sdpおよびdefault。inetおよびinet6は、それぞれIPV4プロトコルとIPV6プロトコルを表します。inet-sdpは、Sockets Direct Protocol (SDP)で使用されます。デフォルト値: inet。

handle-protocol-mismatch

0または1

サーバーでクライアント・リクエストのSSLまたは非SSLプロトコルの不一致に応答するかどうかを示します。デフォルト値はtrueです。つまり、サーバーは、SSLまたは非SSLプロトコルの不一致を検出しようとし、不一致が検出されるとHTTPリダイレクトまたはSSLアラートを送信します。

listen-queue-size

0または1

リスニング・キューのサイズ(バイト単位)を指定します。この要素の値として、1 - 1048576を指定できます。

receive-buffer-size

0または1

オペレーティング・システムのソケット受信バッファのサイズ(バイト単位)を指定します。この要素の値として、1 - 1048576を指定できます。

send-buffer-size

0または1

オペレーティング・システムのソケット送信バッファのサイズ(バイト単位)を指定します。この要素の値として、1 - 1048576を指定できます。

default-virtual-server-name

1

ホストに一致しないリクエストを処理する仮想サーバーの名前を指定します。この要素の値は、virtual-server要素のname値です。詳細は、3.1.37項「virtual-server」を参照してください。

ssl

0または1

SSL/TLSを構成します。詳細は、3.1.26項「ssl」を参照してください。

description

0または1

HTTPリスナーの説明を指定します。この要素の値は、テキスト形式にする必要があります。

blocking-accept

0または1

クライアントのエンド・ポイントを非ブロッキングのままにしながら、サーバー・リスニング・ソケットのブロッキングを有効/無効にします(MaxProcsが1を上回る場合に役立ちます)。デフォルト値: false。

関連項目:
「http」、「keep-alive」、「virtual-server」

3.1.14 instance

instance要素は、サーバー・クラスタのメンバーを定義します。この要素は、cluster要素内に1回以上出現します。詳細は、3.1.3項「cluster」を参照してください。

表3-14に、instanceのサブ要素を示します。

表3-14 instanceのサブ要素

要素

出現回数

説明

enabled

0または1

実行時にインスタンスを有効にするかどうかを指定します。デフォルト値: true。

host

1

インスタンスのネットワーク・アドレス。値は、ホスト名またはIPアドレスです。

関連項目:
cluster

3.1.15 keep-alive

keep-alive要素は、キープ・アライブ・サブシステムの設定を構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-15に、keep-aliveのサブ要素を示します。

表3-15 keep-aliveのサブ要素

要素

出現回数

説明

enabled

0または1

実行時にキープ・アライブ・サブシステムを有効にするかどうかを指定します。デフォルト値: true。

threads

0または1

キープ・アライブ・サブシステム・スレッドの数を指定します。値として、1 - 128を指定できます。デフォルト値: 1。

max-connections

0または1

サーバーでサポートする同時キープ・アライブ接続の最大数を指定します。値として、1 - 1048576を指定できます。デフォルト値: 200。

timeout

0または1

アクティブでないキープ・アライブ接続を使用できるまでのタイムアウト(秒単位)を指定します。値として、0.001 - 3600を指定できます。デフォルト値: 30秒。

poll-interval

0または1

ポーリングの間隔(秒単位)を指定します。値として、0.001 - 1を指定できます。デフォルト値: .001。

関連項目:
「http」、「http-listener」、「virtual-server」、「thread-pool」

3.1.16 localization

localization要素は、サーバーがクライアントに情報を提供する場合の言語の選択方法を定義します。この要素は、server要素内に0または1回出現し、virtual-server要素内に0または1回出現します。詳細は、3.1.24項「server」および3.1.37項「virtual-server」を参照してください。

表3-16に、localizationのサブ要素を示します。

表3-16 localizationのサブ要素

要素

出現回数

説明

default-language

0または1

メッセージとコンテンツを表示するためのデフォルト言語。値は言語タグです。

negotiate-client-language

0または1

サーバーでaccept-language HTTPヘッダーを使用して、コンテンツ言語についてクライアントとネゴシエートするかどうかを指定します。デフォルト値: false。

3.1.17 log

log要素は、ロギング・サブシステムを構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-17に、logのサブ要素を示します。

表3-17 logのサブ要素

要素

出現回数

説明

log-stdout

0または1

アプリケーションがstdoutに書き込むデータをサーバーで記録するかどうかを指定します。デフォルト値: true。

log-stderr

0または1

アプリケーションがstderrに書き込むデータをサーバーで記録するかどうかを指定します。デフォルト値: true。

log-virtual-server-name

0または1

サーバーでログ・メッセージに仮想サーバー名を含めるかどうかを指定します。デフォルト値: false。

create-console

0または1

サーバーでコンソール・ウィンドウを作成するかどうかを指定します(Windowsのみ)。デフォルト値: false。

log-to-console

0または1

サーバーでコンソールにログ・メッセージを書き込むかどうかを指定します。デフォルト値: true。

log-to-syslog

0または1

サーバーでsyslogにログ・メッセージを書き込むかどうかを指定します。デフォルト値: false。

archive-command

0または1

これは、サーバーがログ・ファイルをローテーションした後に実行されます。プログラムには、ログ・ファイルのローテーション後のファイル名が引数として渡されます。これは、gzipなどのプログラム・コマンドラインです。

log-level

0または1

サーバー全体のログの冗長度を指定します。値: INCIDENT_ERROR:1、NOTIFICATION:1、ERROR:1、ERROR:16、ERROR:32、WARNING:1、TRACE:1、TRACE:16、TRACE:32。デフォルト値: NOTIFICATION:1

log-file

0または1

ログ・ファイルの名前と場所を指定します。値: ユーザー定義の名前と場所。デフォルト値: ../logs/server.log

関連項目:
「access-log」、「access-log-buffer」、「event」

3.1.18 max-fd

max-fd要素は、OTDサーバーのプロセスにおけるファイル・ディスクリプタ使用量の制限を指定します。defFrom Subject Received Size Categories Suresh Warrier Re: Close the bugs Mon 6:53 PM 4 KB ault value of max-fd element is 2 million

3.1.19 origin-server-pool

origin-server-pool要素は、ロード・バランシング・リクエストで使用されるオリジン・サーバーのプールを構成します。この要素は、server要素内に0回以上出現します。詳細は、3.1.24項「server」を参照してください。

表3-18に、origin-server-poolのサブ要素を示します。

表3-18 origin-server-poolのサブ要素

要素

出現回数

説明

name

1

サーバー・プールを識別する名前を指定します。

load-distribution

0または1

オリジン・サーバー・プールにリクエストを分散するロード・バランシング・メソッド。値: round-robin、least-connection-countおよびleast-response-time。デフォルト値: least-connection-count。

ロード・バランシング・メソッドの詳細は、『Oracle Traffic Director管理者ガイド』のオリジン・サーバー・プールの変更に関する項を参照してください。

ssl

0または1

送信用プロキシSSL接続を指定します。

クライアント証明書を暗号とともに選択できます。OTD 12.2.1では、ssl-client-config SAFに置き換えられます。詳細は、3.1.26項「ssl」を参照してください。

type

1

サーバー・プールのすべてのサーバーで処理するリクエストの種類を示します。値: http、httpsおよびtcp。もし、 <origin-server-pool>で<ssl>のサブ要素が有効な場合、そのタイプはhttpsと想定されます。デフォルト: https。

family

0または1

オリジン・サーバーに接続するために使用するソケット・ファミリを指定します。値: inet、inet6、inet-sdpおよびdefault。inetおよびinet6は、それぞれIPV4およびIPV6プロトコルを表します。inet-sdpは、Sockets Direct Protocol (SDP)で使用されます。デフォルト値: inet。

origin-server

0以上

サーバー・プールに属するオリジン・サーバーを表します。

health-check

0または1

サーバー・プールのヘルス・チェック設定を指定します

proxy-server

0または1

サーバー・プールへのプロキシ・サーバーの指定をサポートします

3.1.20 origin-server

origin-server要素は、サーバー・プールのメンバーを定義します。この要素は、origin-server-pool要素内に0回以上出現します。詳細は、3.1.19項「origin-server-pool」を参照してください。

表3-19に、origin-serverのサブ要素を示します。

表3-19 origin-serverのサブ要素

要素

出現回数

説明

host

1

オリジン・サーバーのホスト名またはIPアドレスを指定します。

port

0または1

オリジン・サーバーのポート番号を指定します。値: 整数。オリジン・サーバー・プール・タイプがHTTPの場合、80がデフォルト・ポートです。オリジン・サーバー・プール・タイプがHTTPSの場合、443がデフォルト・ポートです。

weight

0または1

オリジン・サーバーの負荷分散の重みを指定します。値は整数です。デフォルト値: 1。

enabled

0または1

オリジン・サーバーにリクエストをルーティングするかどうかを指定します。デフォルト値: true。

backup

0または1

オリジン・サーバーがバックアップ・サーバーであるかどうかを指定します。プライマリ(バックアップ以外)のオリジン・サーバーが1つも使用できない場合にのみ、リクエストがバックアップ・オリジン・サーバーに送信されます。デフォルト値: false。

max-connections

0または1

サーバーに対する同時接続の最大数を指定します。値: 0 - 20480。デフォルト値: 0。値0は制限なしを示します。

ramp-up-time

0または1

Oracle Traffic Directorがこのオリジン・サーバーの最大容量までリクエスト送信レートをランプアップする時間(秒単位)。デフォルト値: 任意の正の整数。max-connectionsが0に設定されている場合、ramp-up-timeは無視されます。

max-requests-per-connection

0または1

オリジン・サーバーへの接続を異なるリクエストに対して再使用できる回数の最大制限。この制限に達すると、OTDは自発的にオリジン・サーバーへの接続を停止します。0の値は制限が強制されないことを意味します。

max-request-bps

0または1

リクエストに強制されるバイト/秒の帯域幅制限の合計。0の値は制限が強制されないことを意味します。

max-response-bps

0または1

レスポンスに強制されるバイト/秒の帯域幅制限の合計。0の値は制限が強制されないことを意味します。

bandwidth-queue-timeout

0または1

帯域幅のキューで待機しているリクエストが中止されるまでの時間(秒)。

3.1.21 property

property要素は、name-valueペアを定義します。プロパティのname-valueペアを定義することによる効果は、property要素が出現するコンテキストに応じて異なります。

表3-20に、propertyのサブ要素を示します。

表3-20 propertyのサブ要素

要素

出現回数

説明

name

1

プロパティの名前

value

1

プロパティの値

encoded

0または1

プロパティ値がuunencodeアルゴリズムを使用してエンコードされているかどうかを指定します。デフォルト値: false。

encrypted

0または1

プロパティ値を暗号化するかどうかを指定します。デフォルト値: false。

description

0または1

プロパティの説明。

関連項目:
variable

3.1.22 proxy-cache

proxy-cache要素は、HTTPリバース・プロキシのキャッシュ構成を設定します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-21に、proxy-cacheのサブ要素を示します。

表3-21 proxy-cacheのサブ要素

要素

出現回数

説明

enabled

0または1

レスポンス・キャッシュを有効にするかどうかを指定します。デフォルト値: true。

max-heap-space

0または1

レスポンス・オブジェクトのキャッシュに使用するヒープの最大数(バイト単位)を指定します。値: 0 - 1099511627776 (1024 GB)。デフォルト値: 10485760 (10 MB)。

max-heap-object-size

0 - 1

キャッシュするオブジェクトの最大サイズを指定します。指定したサイズより大きいオブジェクトはキャッシュされません。値: 0 - 214783647。デフォルト値: 524288 (512 KB)。

replacement

0 - 1

キャッシュ置換のアルゴリズムを指定します。値: lru、lfuおよびfalse。デフォルト値: lru。

- lru (最低近時使用): Oracle Traffic Directorは、最近最も使用されていないエントリを最初に破棄します。

- lfu (最低頻度使用): Oracle Traffic Directorは、最も使用頻度が低いエントリを最初に破棄します。

- false: キャッシュ置換は無効です。

max-entries

0 - 1

キャッシュ内のエントリの最大数を指定します。範囲は1 - 1073741824です。デフォルト値: 1024。

3.1.23 qos-limits

qos-limits要素は、サービス品質(QoS)制限を構成します。この要素は、server要素内に0または1回出現し、virtual-server要素内に0または1回出現します。詳細は、3.1.24項「server」および3.1.37項「virtual-server」を参照してください。

表3-22に、qos-limitsのサブ要素を示します。

表3-22 qos-limitsのサブ要素

要素

出現回数

説明

enabled

0または1

実行時にQoS制限を強制的に適用するかどうかを指定します。デフォルト値: true。

max-bps

0または1

最大転送レート(バイト/秒)を指定します。値の範囲: 1 - 2147483647

max-connections

0または1

同時接続の最大数を指定します。値の範囲: 1 - 1048576

3.1.24 server

server要素は、サーバーを定義します。これは、ルート要素です。server.xmlファイルには1つのserver要素のみを含めることができます。

表3-23に、serverのサブ要素を示します。

表3-23 serverのサブ要素

要素

出現回数

説明

cluster

0または1

サーバーが属するサーバー・クラスタ。詳細は、3.1.3項「cluster」を参照してください。

fips

0または1

セキュリティ・ライブラリの操作のFIPS-140モードを有効にします。

crl

0または1

証明書を定義します。詳細は、第3.1.5項「crl」を参照してください。

log

0または1

ロギング・サブシステムを構成します。詳細は、3.1.17項「log」を参照してください。

user

0または1

サーバー実行時のアカウント(UNIXのみ)。値はユーザー・アカウントです。サーバーがrootとして起動される場合、任意のUNIXアカウントを指定できます。サーバーがroot以外のアカウントにより起動される場合、そのroot以外のアカウントのみを指定できます。

temp-path

0または1

サーバーが一時ファイルを格納するディレクトリ。相対パスを使用する場合、サーバーのconfigディレクトリが基準となります。このディレクトリは、サーバー実行時のアカウントが所有している必要があります。

variable

0以上

式、ログ形式およびobj.confパラメータで使用される変数を定義します。詳細は、3.1.36項「variable」を参照してください。

ｌocalization

0または1

ローカライゼーションを構成します。詳細は、3.1.16項「localization」を参照してください。

http

0または1

HTTPプロトコル・オプションを構成します。詳細は、3.1.12項「http」を参照してください。

keep-alive

0または1

HTTPキープ・アライブ・サブシステムを構成します。詳細は、3.1.15項「keep-alive」を参照してください。

thread-pool

0または1

HTTPリクエスト処理スレッドを構成します。詳細は、3.1.34項「thread-pool」を参照してください。

stats

0または1

統計収集サブシステムを構成します。詳細は、3.1.29項「stats」を参照してください。

dns

0または1

サーバーのDNS使用を構成します。詳細は、3.1.7項「dns」を参照してください。

dns-cache

0または1

DNSキャッシュを構成します。詳細は、3.1.8項「dns-cache」を参照してください。

ssl-session-cache

0または1

SSL/TLSセッション・キャッシュを構成します。詳細は、3.1.28項「ssl-session-cache」を参照してください。

access-log-buffer

0または1

アクセス・ログ・バッファリング・サブシステムを構成します。詳細は、3.1.2項「access-log-buffer」を参照してください。

snmp

0または1

SNMPを構成します。詳細は、3.1.25項「snmp」を参照してください。

access-log

0以上

サーバーのHTTPアクセス・ログを構成します。詳細は、3.1.1項「access-log」を参照してください。

http-listener

0以上

HTTPリスナーを構成します。詳細は、3.1.13項「http-listener」を参照してください。

virtual-server

0以上

仮想サーバーを構成します。詳細は、3.1.37項「virtual-server」を参照してください。

event

0以上

反復イベントを構成します。詳細は、3.1.9項「event」を参照してください。

origin-server-pool

0以上

ロード・バランシング・リクエストの処理で使用されるオリジン・サーバーのプールを構成します。詳細は、3.1.19項「origin-server-pool」を参照してください。

proxy-cache

0または1

HTTPリバース・プロキシのキャッシュ構成メカニズムを定義します。詳細は、3.1.22項「proxy-cache」を参照してください。

qos-limits

0または1

QoS設定に関連する情報を指定します。詳細は、3.1.23項「qos-limits」を参照してください。

tcp-thread-pool

0または1

TCPリクエスト処理スレッドを構成します。詳細は、3.1.33項「tcp-thread-pool」を参照してください。

tcp-access-log

0または1

サーバーのTCPアクセス・ログを構成します。詳細は、3.1.30項「tcp-access-log」を参照してください。

tcp-listener

0以上

TCPリスナーを構成します。詳細は、3.1.31項「tcp-listener」を参照してください。

tcp-proxy

0以上

TCPサービスを構成します。詳細は、3.1.32項「tcp-proxy」を参照してください。

webapp-firewall-ruleset

0以上

Webアプリケーション・ファイアウォール(WAF)モジュール・ルールが含まれるファイルへのパスを指定します。詳細は、3.1.38項「webapp-firewall-ruleset」を参照してください。

3.1.25 snmp

snmp要素は、サーバーのSNMPサブエージェントを構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-24に、snmpのサブ要素を示します。

表3-24 snmpのサブ要素

要素

出現回数

説明

enabled

0または1

SNMPエージェントを有効にするかどうかを指定します。有効になると、SNMPサブエージェントは、サーバーに関する情報を収集し、その情報をマスター・エージェントに渡します。デフォルト値: true。

description

0または1

(オプション)サーバーの説明を指定します。値はテキスト形式にする必要があります。

organization

0または1

(オプション)サーバーに責任を持つ組織の名前を指定します。値はテキスト形式にする必要があります。

location

0または1

(オプション)サーバーの場所を指定します。値はテキスト形式にする必要があります。

contact

0または1

(オプション)サーバーの責任者の連絡先情報を指定します。値はテキスト形式にする必要があります。

関連項目:
stats

3.1.26 ssl

ssl要素は、SSL/TLS設定を構成します。この要素は、http-listener要素内に0または1回出現します。詳細は、3.1.13項「http-listener」を参照してください。

送信用プロキシSSL接続を構成するために、この要素は、origin-server-pool要素内に0または1回出現します。詳細は、3.1.19項「origin-server-pool」を参照してください。

表3-25に、sslのサブ要素を示します。

表3-25 sslのサブ要素

要素

出現回数

説明

enabled

0または1

リスナーに対してSSLサポートを有効にするかどうかを指定します。certが指定されていない場合、デフォルトではリスナーに対して無効で、それ以外の場合は有効です。origin-server-poolに含まれている場合、デフォルトで有効です。

cert

0以上

サーバーがクライアントに提供する証明書のニックネームを指定します。0または1つのRSA証明書と、0または1つのECC証明書を指定できます。

ssl3

0または1

SSL3接続を受け入れるかどうかを指定します。デフォルト値: false。

numCtx

0または1

2つ以上のNZグローバル・コンテキストの作成を許可し、高負荷の状況でNZロック競合を解決します。デフォルト値: 1。

pool-context-size

0または1

プールを作成して、NZ sslコンテキストの再使用をサポートし、パフォーマンスを向上させます。

作成時には、プールが空のため、追加の起動時間がありません。プールが一杯になると、新しいコンテキストが作成されますが再使用されず、パフォーマンスは低下します。この設定は、予想される同時SSL接続数の最大値に設定する必要があります。プール・サイズの増加はメモリー使用量を増加させるため、プール内に保存されたコンテキストは再構成または停止まで解放されないことに留意してください。デフォルト値: 4096。

tls1.0

0または1

TLS接続を受け入れるかどうかを指定します。デフォルト値: true。

tls1.1

0または1

TLS接続がBEAST攻撃に対して完全に保護するかどうか指定します。デフォルト値: true。

tls1.2

0または1

TLS接続がBEAST攻撃に対して完全に保護するかどうか指定します。デフォルト値: true。

ssl3-tls-ciphers

0または1

SSL3およびTLS暗号スイートを構成します。詳細は、3.1.27項「ssl3-tls-ciphers」を参照してください。

client-auth

0または1

クライアント証明書認証の方法を指定します。値として、required、optionalまたはfalseを指定できます。requiredオプションを選択すると、サーバーはクライアントに証明書をリクエストします。クライアントが証明書を提供しない場合、接続はクローズされます。optionalオプションを選択すると、サーバーはクライアントに証明書をリクエストしますが、証明書は必須ではありません。クライアントが証明書を提供しなくても、接続は確立されます。デフォルト値: false。クライアント認証はデフォルトで無効です。

client-auth-timeout

0または1

クライアント認証ハンドシェイクが失敗するまでの期間(秒単位)を示します。値として、0.001 - 3600を指定できます。

max-client-auth-data

0または1

サーバーでバッファする認証データの文字数を指定します。値として、0 - 2147483647を指定できます。

validate-server-cert-hostname

0または1

SSL証明書の検証をオンまたはオフにするかを指定します。送信用接続にのみ適用されます。リモート証明書またはCAは、ウォレット内でローカルに信頼されている必要があります。

リモートの証明書が完全に信頼されていない場合(たとえば、自己署名)、NZは、プログラム上のオーバーライドを提供しません。デフォルト値: true

wallet-location

0または1

仮想サーバー、リスナーまたはオリジン・サーバー・グループに、代替ウォレットを選択できます。これを省略した場合、インスタンスのconfigディレクトリからのウォレットが省略されます。これは主にSNIをマルチテナントでサポートするため、各仮想サーバーは異なるウォレットを使用できます。

関連項目:
http-listener、ssl3-tls-ciphers、ssl-session-cache

3.1.27 ssl3-tls-ciphers

ssl3-tls-ciphers要素は、SSL3およびTLS暗号スイートを構成します。この要素は、ssl要素内に0または1回出現します。詳細は、3.1.26項「ssl」を参照してください。

もし、ssl3-tls-ciphersが構成に存在しない場合、各暗号のデフォルトの実施可能な値が使用されます。もし、ssl3-tls-ciphersが存在する場合、cipher要素を有効化する各暗号に含める必要があります。詳細は、3.1.6項「cipher」を参照してください。

表3-26に、ssl3-tls-ciphersのサブ要素を示します。

表3-26 ssl3-tls-ciphersのサブ要素

要素

出現回数

説明

cipher

0以上

有効化する暗号を指定します。詳細は、3.1.6項「cipher」を参照してください。

override-cipher-order

0または1

この設定は、サーバー側のリスナー(たとえば、HTTPSおよびTCPリスナー)およびSNI仮想サーバーにのみ適用されます。設定された場合、サーバーは<ssl3-tls-ciphers>で指定された順番に暗号を選択します。クライアントにサポートされているこのリストの最初の暗号が選択されます。設定されない場合、サーバーにサポートされているClientHelloメッセージの最初の暗号が選択されます。デフォルト値: false。

関連項目:
http-listener、ssl、ssl-session-cache

3.1.28 ssl-session-cache

ssl-session-cache要素は、SSL/TLSセッション・キャッシュを構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-27に、ssl-session-cacheのサブ要素を示します。

表3-27 ssl-session-cacheのサブ要素

要素

出現回数

説明

enabled

0または1

サーバーでSSL/TLSセッションをキャッシュに書き込むかどうかを指定します。デフォルト値: true。

max-entries

0または1

サーバーでキャッシュに書き込むSSL/TLSセッションの最大数を指定します。値として、1 - 524288を指定できます。

max-ssl3-tls-session-age

0または1

SSL/TLSセッションをキャッシュに書き込む最大時間(秒単位)を指定します。値として、5 - 86400を指定できます。

関連項目:
http-listener、ssl、ssl3-tls-ciphers

3.1.29 stats

stats要素は、統計収集サブシステムを構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-28に、statsのサブ要素を示します。

表3-28 statsのサブ要素

要素

出現回数

説明

enabled

0または1

サーバーで統計を収集するかどうかを指定します。デフォルト値: true。

interval

0または1

統計を更新する間隔(秒単位)を指定します。値として、0.001 - 3600を指定できます。

profiling

0または1

NSAPI機能の実行時間を追跡するために使用するパフォーマンス・バケットを実行時に有効にするかどうかを指定します。デフォルト値: true。

関連項目:
snmp

3.1.30 tcp-access-log

tcp-access-log要素は、TCPアクセス・ログの設定を構成します。tcp-access-log要素がない場合、TCPアクセス・ロギングは無効です。詳細は、3.1.24項「server」を参照してください。

表3-29に、tcp-access-logのサブ要素を示します。

表3-29 tcp-access-logのサブ要素

要素

出現回数

説明

enabled

0または1

TCPアクセス・ロギングを有効にするかどうかを指定します。要素が有効である場合、サーバーはTCPリスナーがリクエストを受信するたびにログ・エントリを書き込みます。デフォルト値: true。

file

1

アクセス・ログ・ファイルのファイル名(絶対パス、またはサーバーのconfigディレクトリを基準とした相対パス)を指定します。

関連項目:
「tcp-thread-pool」、「tcp-listener」、「tcp-proxy」

3.1.31 tcp-listener

tcp-listener要素は、TCPリスナーを構成します。詳細は、3.1.24項「server」を参照してください。

表3-30に、tcp-listenerのサブ要素を示します。

表3-30 tcp-listenerのサブ要素

要素

出現回数

説明

enabled

0または1

接続リクエストを受け入れるようにTCPリスナーを有効にするかどうかを指定します。デフォルト値: true。

name

1

TCPリスナーを一意に識別する名前を指定します。

ip

0または1

リスニングするIPアドレスを指定します。この要素の値は、特定のIPアドレスにするか、またはすべてのIPアドレスでリスニングする場合はアスタリスク(*)にします。

port

1

リスニングするポートを指定します。この要素の値は、ポート番号です。

family

0または1

オリジン・サーバーに接続するために使用するソケット・ファミリを指定します。値: inet、inet6、inet-sdpおよびdefault。inetおよびinet6は、それぞれIPV4およびIPV6プロトコルを表します。inet-sdpは、Sockets Direct Protocol (SDP)で使用されます。デフォルト値: inet。

acceptor-threads

0または1

このリスナーが受信する接続の受入れ専用スレッドの数を指定します。値として、1 - 128を指定できます。デフォルト値: CPUごとに1。

tcp-proxy-name

1

リスナーが受信したリクエストを処理するTCPプロキシの名前を指定します。

listen-queue-size

0または1

リスニング・キューのサイズ(バイト単位)を指定します。値: 1 - 1048576。

receive-buffer-size

0または1

オペレーティング・システムのソケット受信バッファのサイズ(バイト単位)を指定します。値: 1 - 1048576。

send-buffer-size

0または1

オペレーティング・システムのソケット送信バッファのサイズ(バイト単位)を指定します。値: 1 - 1048576。

ssl

0または1

SSL/TLSを構成します。詳細は、3.1.26項「ssl」を参照してください。

description

0または1

TCPリスナーの説明を指定します。この要素の値は、テキスト形式にする必要があります。

blocking-accept

0または1

クライアントのエンド・ポイントを非ブロッキングのままにしながら、サーバー・リスニング・ソケットのブロッキングを有効/無効にします(MaxProcsが1を上回る場合に役立ちます)。デフォルト値: false。

関連項目:
「tcp-access-log」、「tcp-thread-pool」、「tcp-proxy」

3.1.32 tcp-proxy

tcp-proxy要素は、LDAP/T3リスナーをサポートするために使用します。詳細は、3.1.24項「server」を参照してください。

表3-31に、tcp-proxyのサブ要素を示します。

表3-31 tcp-proxyのサブ要素

要素

出現回数

説明

enabled

0または1

TCPサービスを有効にするかどうかを指定します。デフォルト値: true。

name

1

TCPプロキシを一意に識別する名前。

session-idle-timeout

0または1

データの受信/送信中サーバーが待機する最大タイムアウト(秒単位)を指定します。デフォルト値: 300

origin-server-pool-name

0または1

TCPサービスを提供するサーバー・プールの名前を指定します。この値は、origin-server-pool要素のname値である必要があります。

関連項目:
「tcp-access-log」、「tcp-listener」、「tcp-thread-pool」

3.1.33 tcp-thread-pool

tcp-thread-pool要素は、WebSocketリクエストおよびTCPリスナーが受信したリクエストの処理に使用されるスレッドを構成します。詳細は、3.1.24項「server」を参照してください。

表3-32に、tcp-thread-poolのサブ要素を示します。

表3-32 tcp-thread-poolのサブ要素

要素

出現回数

説明

enabled

0または1

プールを有効にするかどうかを指定します。デフォルト値: true。

threads

0または1

TCP/WebSocketリクエスト処理スレッドの数を指定します。値として、1 - 512を指定できます。デフォルト値: CPUごとに1。

max-connections

0または1

サーバーがサポートする接続ペアの最大数を指定します。値として、1 - 1048576を指定できます。デフォルト値: デフォルト値はキープ・アライブのmax-connections値の値です。

timeout

0または1

接続ペアがクローズされるまでのアイドル・タイムアウト(秒単位)を指定します。この値は、tcpまたはWebSocketサブシステムによってオーバーライドされます。値として、0.001 - 3600を指定できます。デフォルト値: 300秒。

stack-size

0または1

各スレッドのスタック・サイズ(バイト単位)を指定します。値として、8192 - 67108864まで、または0を指定できます。デフォルト値: 32768。

poll-interval

0または1

ポーリングの間隔(秒単位)を指定します。値として、0.001 - 1を指定できます。デフォルト値: 0.010秒。

buffer-size

0または1

各接続でデータ転送に使用されるバッファ(バイト単位)のサイズを指定します。値として、1 - 1048576を指定できます。デフォルト値: 16384。

関連項目:
「tcp-access-log」、「tcp-listener」、「tcp-proxy」

3.1.34 thread-pool

thread-pool要素は、HTTPリクエストを処理するために使用するスレッドを構成します。この要素は、server要素内に0または1回出現します。詳細は、3.1.24項「server」を参照してください。

表3-33に、thread-poolのサブ要素を示します。

表3-33 thread-poolのサブ要素

要素

出現回数

説明

min-threads

0または1

HTTPリクエスト処理スレッドの最小数を指定します。値として、1 - 4096を指定できます。

max-threads

0または1

HTTPリクエスト処理スレッドの最大数を指定します。

デフォルト値は、プロセッサの数に基づいています。たとえば、1つまたは2つのプロセッサがある場合、デフォルト値は256です。同様に、3つまたは4つのプロセッサがある場合、デフォルト値は512です。デフォルト値は、プロセスに使用可能なファイル記述子の最大数の4分の1以下となります。

stack-size

0または1

HTTPリクエスト処理スレッドのスタック・サイズ(バイト単位)を指定します。値として、8192 - 67108864を指定できます。

queue-size

0または1

処理のためにキューに入れる同時HTTP接続の最大数を指定します。値として、1 - 1048576を指定できます。

関連項目:
「http」、「keep-alive」

3.1.35 time

time要素は、イベントの発生時間をスケジュールします。この要素は、event要素内に0回以上出現します。詳細は、3.1.9項「event」を参照してください。

表3-34に、timeのサブ要素を示します。

表3-34 timeのサブ要素

要素

出現回数

説明

time-of-day

1

イベントの発生時刻を指定します。値の書式は、hh:mmにする必要があります。

day-of-week

0または1

曜日を指定します。値として、Sun、Mon、Tue、Wed、Thu、FriまたはSatを指定できます。

day-of-month

0または1

月内の日を指定します。値として、1 - 31を指定できます。

month

0または1

月名を指定します。値として、Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、NovまたはDecを指定できます。

3.1.36 variable

variable要素は、式、ログ形式およびobj.confパラメータで使用される変数を定義します。この要素は、server要素内に0回以上出現し、virtual-server要素内に0回以上出現します。詳細は、3.1.24項「server」および3.1.37項「virtual-server」を参照してください。

表3-35に、variableのサブ要素を示します。

表3-35 variableのサブ要素のリスト

要素

出現回数

説明

name

1

変数の名前を指定します。値はテキスト形式にする必要があります。

value

1

変数の値を指定します。値はテキスト形式にする必要があります。

description

0または1

変数の説明。値はテキスト形式にする必要があります。

関連項目:
「property」、「変数、式、ワイルドカードおよび文字列補間の使用」

3.1.37 virtual-server

virtual-server要素は、HTTP仮想サーバーを構成します。通常、各サーバーには少なくとも1つの仮想サーバーがあります。この要素は、server要素内に0回以上出現します。詳細は、3.1.24項「server」を参照してください。

表3-36に、virtual-serverのサブ要素を示します。

表3-36 virtual-serverのサブ要素

要素

出現回数

説明

enabled

0または1

実行時に仮想サーバーを有効にするかどうかを指定します。デフォルト値: true。

name

1

仮想サーバーを一意に識別する名前。

ssl

0または1

virtual-serverのSSLを指定します。

SSLは、SNIの各仮想サーバーに構成されます。代替ウォレットおよび暗号スイートを各virtual-serverに選択できます。

sslは、virtual-serverが明示的にhttp-listenerに制限されている場合にのみ設定されます。デフォルトのvirtual-serverはsslを実装できないため、sslパラメータはリスナーのssl設定から実装されます。

sslが指定されたvirtual-serverは、SNI拡張子およびHTTPホスト・ヘッダーを送信するSNIが有効なSSLクライアントによってのみアクセス可能で、これらの両方はvirtual-serverのhost要素に一致している必要があります。

SNIが有効化されていないクライアントをサポートするためには、virtual-serverにsslを含めずにOTDを構成します。たとえば、証明書が異なるIPアドレス上の複数のリスナーを構成する、または1つのリスナーおよび1つの証明書を複数のsubjectAltNamesで構成します。

http-listener-name

0以上

1つ以上の仮想サーバーのホスト名に関連付けられたHTTPリスナーの名前。値はhttp-listener要素から取得された名前です。詳細は、3.1.13項「http-listener」を参照してください。

host

0以上

仮想サーバーがサービスを提供するホスト名を示します。値として、ホスト名またはワイルドカードを指定できます。ワイルドカードの詳細は、A.5項「ワイルドカード・パターン」を参照してください。

canonical-server-name

0または1

仮想サーバーの正規名。異なる名前を使用するリクエストは、正規名にリダイレクトされます。値は、ホスト名またはURL接頭辞です。

object-file

1

仮想サーバーのリクエスト処理を制御するobj.confファイル。デフォルト値: default-virtual-server-name-obj.conf (ユーザーは任意の有効なファイルを指定できます)。

default-object-name

0または1

ルートobj.confオブジェクトの名前。デフォルト値: default。

ｌocalization

0または1

ローカライゼーションを構成します。詳細は、3.1.16項「localization」を参照してください。

access-log

0以上

仮想サーバーのHTTPアクセス・ログを構成します。詳細は、3.1.1項「access-log」を参照してください。

log-file

0または1

仮想サーバーのログ・ファイルを指定します。値は、../logs/errorsなどのログ・ファイル名です。

variable

0以上

仮想サーバーのobj.conf変数を定義します。詳細は、3.1.36項「variable」を参照してください。

description

0または1

仮想サーバーの説明。

cert

0または1 (RSA証明書)あるいは1 (ECC証明書)

サーバーがクライアントに提供する証明書のニックネームを指定します。値: RSAについて0または1、およびECCについて0または1

qos-limits

0または1

QoS設定に関連する情報を指定します。

webapp-firewall-ruleset

0または複数

Webアプリケーション・ファイアウォール(WAF)ルールまたは構成が含まれるファイルへのパスを指定します。

関連項目:
「http」、「http-listener」、「keep-alive」

3.1.38 webapp-firewall-ruleset

webapp-firewall-ruleset要素は、ModSecurityルール/構成ディレクティブが含まれるWebアプリケーション・ファイアウォール構成ファイルへのパスを構成します。パスには、絶対パスと相対パスのどちらを指定してもかまいません。相対パスを使用する場合、サーバーのconfigディレクトリが基準となります。ファイル名のコンポーネントにワイルドカード文字を使用して、指定ディレクトリ内の複数のファイルを指定できます。

webapp-firewall-ruleset要素は、virtual-serverレベルおよびserverレベルに存在する可能性があり、server要素およびvirtual-server要素内にゼロ回以上出現します。virtual-serverレベルの構成設定はserverレベルより優先されます。ただし、構成ディレクティブによってはserverレベルでしか指定できないものがあります。これらのディレクティブのスコープはMainであると見なされます。同様に、serverレベルまたはvirtual-serverレベルのいずれかに指定できるディレクティブのスコープは、「任意」とみなされます。「メイン」スコープのディレクティブがvirtual-serverレベルの構成ファイル内に指定された場合、エラーが記録され、サーバーが起動に失敗する点に注意してください。各種ディレクティブのスコープの詳細は、『Oracle Traffic Director管理者ガイド』のWebアプリケーション・ファイアウォールに関する項を参照してください。

注意:
Webアプリケーション・ファイアウォールの各種ユースケースの詳細は、『Oracle Traffic Director管理者ガイド』の付録「Webアプリケーション・ファイアウォールの例およびユースケース」を参照してください。

4 obj.confの構文および使用

obj.confファイルには、HTTPリクエスト処理のディレクティブが含まれます。obj.confファイルは、INSTANCE_HOME/net-configuration_name/configディレクトリにあります。

obj.confファイルは、Oracle Traffic Directorのインストール中に作成されます。Oracle Traffic Director管理者コンソールまたはコマンドライン・インタフェース(CLI)を使用して複数の仮想サーバーを構成すると、仮想サーバーごとに個別のobj.confファイルを作成できます。これらのファイルの名前は、virtual-server-name-obj.confになります。virtual-server-nameは仮想サーバーの名前です。

管理者コンソールまたはCLIを使用して行った変更がobj.confファイルに影響しない場合、仮想サーバー固有の新しいobj.confファイルは作成されず、構成のすべての仮想サーバーでデフォルトのobj.confファイルが使用されます。

管理者コンソールまたはCLIを使用して行った変更がobj.confファイルに影響する場合、仮想サーバーごとに新しいobj.confファイルが作成されます。server.xmlファイルは、各仮想サーバーで使用される適切なobj.confファイルを反映するように即座に更新されます。2つの仮想サーバー(vs1とvs2)が存在する場合、仮想サーバー固有の新しい2つのobj.confファイル(vs1-obj.confとvs2-obj.conf)が作成されます。これらの新しいファイルは、2つの仮想サーバーで使用される正確なobject-fileに基づいてserver.xmlファイルで更新されます。

<object-file>vs1-obj.conf</object-file>

<object-file>vs2-obj.conf</object-file>

これ以降、デフォルトのobj.confファイルの更新、使用または削除は行われません。ただし、2つの仮想サーバーのいずれかでobj.confファイルを変更する場合、元のobj.confファイルではなく、個々のファイルのみを編集する必要があります。

このドキュメントでは、obj.confファイルは、server.xmlファイルのvirtual-server要素のobject-fileサブ要素で指定されたobj.confファイルを示します。

この章では、obj.confのディレクティブ、Object、Client、If、ElseIf、Elseタグの使用方法、obj.confでの制御フロー、およびobj.confを編集する場合の構文ルールについて説明します。

この章の内容は次のとおりです。

- リクエスト処理プロセスの概要

- obj.confのディレクティブ

- obj.confのオブジェクト

- obj.confの制御フロー

- 機能フローの変更

- obj.confの編集

4.1 リクエスト処理プロセスの概要

Oracle Traffic Directorを最初に起動すると、いくつかの初期化タスクが実行され、クライアント(ブラウザなど)からのHTTPリクエストが待機されます。Oracle Traffic Directorは、リクエストを受信すると、最初に仮想サーバーを選択します。選択された仮想サーバーのobj.confファイルによって、Oracle Traffic Directorのリクエスト処理方法が決定されます。

obj.confファイルには、リクエスト処理プロセスの各ステージでOracle Traffic Directorに実行内容を指示するディレクティブと呼ばれる一連の命令が含まれます。これらのディレクティブは、Objectタグの内部にグループ化されます。各ディレクティブは、1つ以上の引数がある関数を起動します。

各ディレクティブは、リクエスト処理プロセスの特定のステージに適用されます。たとえば、リクエスト処理プロセスの認可ステージで適用されるディレクティブは、AuthTransディレクティブです。

4.1.1 リクエスト処理プロセスのステップ

1. AuthTrans (認可の変換)
リクエストで送信された認可情報(名前やパスワードなど)を検証します。

2. NameTrans (名前の変換)
論理URIをローカル・ファイル・システム・パスに変換します。

3. PathCheck (パスのチェック)
ローカル・ファイル・システム・パスの有効性をチェックし、ファイル・システムでリクエストされているリソースに対するアクセス権限をリクエスタが持っているかどうかをチェックします。

4. ObjectType (オブジェクトのタイプ分け)
Oracle Traffic Directorからオリジン・サーバーへの情報のフローを制御し、オリジン・サーバーの接続属性に対してOracle Traffic Directorを構成します。

5. Input (入力読取りの準備)
Serviceステップで読み取られる着信リクエスト・データを処理するフィルタを選択します。

6. Output (出力送信の準備)
Serviceステップで生成される発信レスポンス・データを処理するフィルタを選択します。

7. Route (リクエストのルーティング)
リクエストをルーティングする場所を選択します。

8. Service (レスポンスの生成)
レスポンスを生成してクライアントに返します。

9. AddLog (ログ・エントリの追加)
ログ・ファイルにエントリを追加します。

10. Error (エラー処理)
クライアントにエラー・メッセージを送信して処理を終了します。このステップは、前のステップでエラーが発生した場合にのみ実行されます。

4.2 obj.confのディレクティブ

obj.confファイルのディレクティブによって、サーバー・アプリケーション関数(SAF)と呼ばれる関数が起動されます。各ディレクティブは、関数をコールするタイミングを示してそのパラメータを指定することで、関数をコールします。

各ディレクティブの構文は、次のとおりです。

Directive fn="function" name1="value1"...nameN="valueN"

関数(fn)パラメータの値は、実行するSAFの名前です。すべてのディレクティブで、fnパラメータの値を指定する必要があります。関数がない場合、命令では何も実行されません。残りのパラメータは、関数で必要とされる引数ですが、これらは関数ごとに異なります。

パラメータには、変数および式への参照を含めることができます。変数には、事前定義された変数、set-variable SAFを使用してリクエスト時に定義された変数、またはserver.xmlファイルで定義された変数を指定できます。set-variable SAFの詳細は、5.12.11項「set-variable」を参照してください。server.xmlファイルの変数を定義する方法の詳細は、3.1.36項「variable」を参照してください。式および変数の詳細は、付録A「変数、式、ワイルドカードおよび文字列補間の使用」を参照してください。

Oracle Traffic Directorには、obj.confファイルのディレクティブの作成および変更に使用できる組込みSAFのセットが含まれます。これらのSAFの詳細は、第5項「obj.confの事前定義済のサーバー・アプリケーション関数およびフィルタ」を参照してください。

magnus.confファイルには、NSAPIプラグインを初期化するInitディレクティブSAFが含まれます。

4.3 obj.confのオブジェクト

obj.confファイルのディレクティブは、Objectタグにグループ化されます。defaultオブジェクトには、リクエストを処理するデフォルトの方法に関するOracle Traffic Directorへの命令が含まれます。各新規オブジェクトは、オブジェクトのdefault動作を変更します。

Objectタグには、nameまたはppath属性を含めることができます。どちらのパラメータでも、ワイルドカード・パターンを使用できます。

Oracle Traffic Directorは、defaultオブジェクトのディレクティブを処理することで、リクエストの処理を開始します。ただし、Oracle Traffic Directorは、次の条件のいずれかが満たされると、defaultオブジェクトのNameTransステージの後に別のオブジェクトのディレクティブを処理します。

- 成功したNameTransディレクティブがname引数を指定している場合。

- NameTransステージでの結果に基づく物理パス名が別のオブジェクトのppath属性と一致している場合。

defaultオブジェクト以外のオブジェクトを使用するようにOracle Traffic Directorが変更されている場合、defaultオブジェクトのディレクティブを処理する前に、その別のオブジェクトのディレクティブが処理されます。プロセスの一部のステップでは、Oracle Traffic Directorは、Serviceステージなどの特定のステージのディレクティブについて、あるディレクティブの実行に成功すると即座に処理を停止します。これに対し、別のステージでは、Oracle Traffic Directorは、defaultオブジェクトと追加オブジェクトのディレクティブを含め、そのステージのすべてのディレクティブを処理します。詳細は、「obj.confの制御フロー」を参照してください。

4.3.1 name属性を使用するオブジェクト

defaultオブジェクトのNameTransディレクティブでname引数が指定されている場合、Oracle Traffic Directorは、defaultオブジェクトの残りのディレクティブを処理する前に、その名前のオブジェクトに含まれるディレクティブを処理します。

4.3.2 ppath属性を使用するオブジェクト

Oracle Traffic DirectorがdefaultオブジェクトのNameTransディレクティブの処理を完了すると、リクエストの論理URLが物理パス名に変換されます。この物理パス名がobj.confファイルの別のオブジェクトのppath属性に一致する場合、Oracle Traffic Directorは、defaultオブジェクトの残りのディレクティブを処理する前に、そのオブジェクトのディレクティブを処理します。

4.3.3 Client、If、ElseIfおよびElseタグの使用

Objectタグ内では、追加タグを使用できます。これらのタグによって、オブジェクト内のディレクティブを起動する場合の柔軟性が向上します。

4.3.3.1 Client

Clientタグによって、一連のディレクティブの実行を、特定のクライアントから受信したリクエストに制限できます。Clientタグ内にリストされたディレクティブは、クライアント・リクエストの情報が、指定されたパラメータ値に一致する場合にのみ実行されます。

表4-1に、Clientタグのパラメータを示します。

表4-1 Clientタグのパラメータ

パラメータ

説明

browser

ブラウザからOracle Traffic Directorに送信されるUser-Agent文字列。

chunked

チャンク・エンコーディングをリクエストするクライアントによって設定されたブール値。

code

HTTPレスポンス・コード。

dns

クライアントのDNS名。

internal

内部で生成されたリクエストを示すブール値。

ip

クライアントのIPアドレス。

keep-alive

クライアントがキープ・アライブ接続をリクエストしたかどうかを示すブール値。

keysize

SSLトランザクションで使用される鍵サイズ。

match

Clientタグの一致モード。有効な値は、all、anyおよびnoneです。

method

ブラウザで使用されるHTTPメソッド。

name

前のNameTrans文で指定されているオブジェクトの名前。

odds

囲まれたディレクティブを評価するためのランダム値。値には、パーセントまたは比率を指定できます(20%や1/5など)。

path

リクエストされたリソースに対する物理パス。

ppath

リクエストされたリソースの物理パス。

query

リクエストで送信された問合せ文字列。

reason

HTTPレスポンス・コードのテキスト・バージョン。

restarted

リクエストが再起動されたことを示すブール値。

secret-keysize

SSLトランザクションで使用される秘密鍵サイズ。

security

暗号化されたリクエスト。

type

リクエストされたドキュメントのタイプ(text/htmlやimage/gifなど)。

uri

ブラウザからのリクエストのURIセクション。

urlhost

クライアントでリクエストされた仮想サーバーのDNS名。(値は、クライアント・リクエストのHostヘッダーで指定されます。)

variable-headers

クライアントによるリクエストに基づいて、次のように特定のサイトへのアクセスを禁止します。

Client variable-headers="Weferer:SKVFVWRKJVZCMHVIBGDA
Service type="image/*" fn="deny-existence"
</Client>

Clientタグのパラメータによって、Ifディレクティブの実行時に詳細な制御を行うことができます。次の例では、oddsパラメータによって、リクエストは25%の確率でリダイレクトされます。

<Client odds="25%">
NameTrans fn="redirect"
from="/Pogues"
url-prefix="http://pogues.example.com"
</Client>

1つ以上のワイルドカード・パターンを使用して、Clientタグのパラメータ値を指定できます。ワイルドカードを使用して、Clientタグで指定されたパラメータ値に一致するクライアントを除外することもできます。次の例では、ClientタグとAddLogディレクティブを組み合せて、すべてのクライアントからのアクセス・リクエストを、指定したサブネットからのものを除いてログに記録するようにOracle Traffic Directorに指示しています。

<Client ip="*~192.85.250.*">
AddLog fn="flex-log" name="access"
</Client>

Clientタグのmatchパラメータをnoneに設定することで、除外項目を作成することもできます。次の例では、仮想サーバーexample.comに対するすべてのリクエストと同様に、指定したサブネットからのリクエストが除外されます。

<Client match="none" ip="192.85.250.*" urlhost="www.example.com">
AddLog fn="flex-log" name="access"
</Client>

ワイルドカード・パターンの詳細は、A.5項「ワイルドカード・パターン」を参照してください。

4.3.3.2 If、ElseIfおよびElse

Clientタグと同様に、これらのタグはObjectタグの内部にのみ出現します。また、これらのタグで式を評価して、含まれている1つ以上のディレクティブを条件付きで実行できます。詳細は、A.1項「If、ElseIfおよびElseタグ」を参照してください。

4.4 obj.confの制御フロー

Oracle Traffic Directorでリクエストを処理するには、リクエストを適切な仮想サーバーに転送する必要があります。仮想サーバーの決定後、Oracle Traffic Directorは、指定された仮想サーバーのobj.confファイルを実行します。この項では、Oracle Traffic Directorがobj.conf内で実行するディレクティブを決定する方法について説明します。

4.4.1 AuthTrans

Oracle Traffic Directorは、リクエストを受信すると、defaultオブジェクトのAuthTransディレクティブを実行して、クライアントがOracle Traffic Directorへのアクセスを許可されているかどうかをチェックします。複数のAuthTransディレクティブが存在する場合、Oracle Traffic Directorは、いずれかのディレクティブでエラーが発生しないかぎり、ユーザーの認可に成功するまで各ディレクティブを順番に実行します。エラーが発生すると、Oracle Traffic Directorは、Errorディレクティブ以外の他のすべてのディレクティブをスキップします。

AuthTransディレクティブは、PathCheckディレクティブと組み合せて使用します。AuthTransディレクティブは、リクエストに関連付けられたユーザー名とパスワードが受入れ可能であるかどうかをチェックしますが、リクエストに対するアクセスの許可または拒否は行いません。この処理は、PathCheckディレクティブが実行します。

認可プロセスは、複数の認可スキームを容易に統合し、認可情報を記録するリソースを柔軟に確保するため、2つのステップに分割されます。

クライアントが最初にリクエストを作成したときには、ユーザー名とパスワードは不明です。AuthTransディレクティブは、リクエストに関連付けられたヘッダーからユーザー名とパスワードを取得します。AuthTransディレクティブとPathCheckディレクティブは、ユーザー名とパスワードを検証できない場合、連携してリクエストを拒否します。リクエストが拒否されると、Oracle Traffic Directorにダイアログ・ボックスが表示されます。クライアントは、ヘッダーにユーザー名とパスワードを含めてリクエストを再送信します。

4.4.2 NameTrans

Oracle Traffic Directorは、defaultオブジェクトのNameTransディレクティブを実行して、名前付きオブジェクト(ルーティング・ルールを指定するオブジェクトなど)をリクエストされたリソースのURLに関連付けます。

Oracle Traffic Directorは、適用可能なディレクティブを検出するまで、defaultオブジェクトの各NameTransディレクティブを順番に評価します。

Oracle Traffic DirectorはすべてのNameTransディレクティブを実行するとはかぎらないため、ディレクティブの出現順序が重要になります。

4.4.2.1 Oracle Traffic Directorが他のオブジェクトを処理する方法と条件

NameTransディレクティブを実行した結果、Oracle Traffic Directorが別のオブジェクトのディレクティブの処理を開始することがあります。これは、正常に実行されたNameTransディレクティブによって名前が指定されるか、別のオブジェクトのnameまたはppath属性に一致する部分パスが生成されると発生します。

成功したNameTransディレクティブによってname引数の指定により名前が割り当てられると、Oracle Traffic Directorは、objectタグで定義された名前付きオブジェクトのディレクティブの処理を開始し、その後でリクエスト処理プロセスの残りとしてdefaultオブジェクトのディレクティブを処理します。

4.4.3 PathCheck

NameTransステップでリクエストされたリソースの論理URLを物理パス名に変換した後、Oracle Traffic Directorは、PathCheckディレクティブを実行して、クライアントがリクエストされたリソースにアクセスできるかどうかを検証します。

複数のPathCheckディレクティブが存在する場合、Oracle Traffic Directorは、いずれかのディレクティブによってアクセスが拒否されないかぎり、すべてのディレクティブをその出現順序に従って実行します。アクセスが拒否されると、Oracle Traffic Directorは、Errorセクションのディレクティブに実行を切り替えます。

NameTransディレクティブによって名前が割り当てられているか、別のオブジェクトのnameまたはppath属性に一致する物理パス名が生成された場合、Oracle Traffic Directorは、defaultオブジェクトのディレクティブを適用する前に、まずその一致するオブジェクトのPathCheckディレクティブを適用します。

4.4.4 ObjectType

PathCheckディレクティブによってアクセスが承認されると、Oracle Traffic Directorは、次にObjectTypeディレクティブを実行してリクエストのMIMEタイプを決定します。MIMEタイプには、type、encodingおよびlanguageという3つの属性があります。Oracle Traffic Directorがクライアントにレスポンスを送信すると、type、languageおよびencodingの各値がレスポンスのヘッダーに含まれて送信されます。typeは、Oracle Traffic Directorが、クライアントに対するレスポンスを生成するために実行するServiceディレクティブを決定する場合にも特に役立ちます。

複数のObjectTypeディレクティブが存在する場合、Oracle Traffic Directorは、すべてのディレクティブをその出現順序に従って適用します。ただし、ディレクティブによってMIMEタイプの属性が一度設定されると、その後同じ属性を設定しようとしても無視されます。すべてのObjectTypeディレクティブが適用される理由は、1つのディレクティブは1つの属性(typeなど)を設定し、別のディレクティブは別の属性(languageなど)を設定するためです。

PathCheckディレクティブの場合と同様に、NameTransステップの結果としてリクエストに別のオブジェクトが一致した場合、Oracle Traffic Directorは、defaultオブジェクトのObjectTypeディレクティブを実行する前に、その一致するオブジェクトのObjectTypeディレクティブを実行します。

4.4.5 Input

Inputディレクティブは、Serviceステップで読み取られる着信リクエスト・データを処理するフィルタを選択します。Inputディレクティブは、Oracle Traffic Directorまたはプラグインがクライアントからエンティティ本文データを最初に読み取ろうとしたときに起動されます。リクエスト処理プロセスのInputステージでinsert-filter SAFを起動することで、着信データを処理するNSAPIフィルタを追加できます。NSAPIフィルタによって、ある関数を使用して、別の関数に提供されるコンテンツまたは別の関数で生成されるコンテンツをインターセプトして潜在的に変更できます。Inputディレクティブは、1つのリクエストごとに1回実行されます。

2つ以上のフィルタをフィルタ・スタックの同じ場所に定義する場合、obj.confのInput fn="insert-filter"ディレクティブとOutput fn="insert-filter"ディレクティブの順序が重要になります。後に挿入されたフィルタは、先に挿入されたフィルタより上に出現します。

4.4.6 Output

Outputディレクティブは、Serviceステップで生成される発信レスポンス・データを処理するフィルタを選択します。Outputディレクティブによって、insert-filter SAFを起動して、発信データを処理するNSAPIフィルタをインストールできます。NSAPIフィルタによって、ある関数を使用して、別の関数に提供されるコンテンツまたは別の関数で生成されるコンテンツをインターセプトして潜在的に変更できます。Outputディレクティブは、Oracle Traffic Directorまたはプラグインがクライアントからエンティティ本文データを最初に書き込もうとしたときに実行されます。Outputディレクティブは、1つのリクエストごとに1回実行されます。

2つ以上のフィルタをフィルタ・スタックの同じ場所に定義する場合、obj.confのInput fn="insert-filter"ディレクティブとOutput fn="insert-filter"ディレクティブの順序が重要になります。後に挿入されたフィルタは、先に挿入されたフィルタより上に出現します。

4.4.7 Route

Serviceディレクティブで、HTTPリクエストを別のサーバーに送信する必要がある場合、Oracle Traffic Directorは、Routeディレクティブを実行してリクエストのルーティング方法を決定します。リクエストのルーティングには、リクエストにサービスを提供するOracle Traffic Directorを選択することや、リクエストを送信するためのプロキシを選択することが含まれます。

4.4.8 Service

Oracle Traffic Directorは、Serviceディレクティブを実行して、クライアントに送信するためのレスポンスを生成します。Oracle Traffic Directorは、各Serviceディレクティブを参照して、タイプ、メソッドおよび問合せ文字列に一致する最初のディレクティブを検出します。Serviceディレクティブでタイプ、メソッドまたは問合せ文字列が指定されない場合、未指定の属性は任意の項目に一致します。

複数のServiceディレクティブが存在する場合、Oracle Traffic Directorは、リクエストの条件に一致する最初のディレクティブを適用し、残りのすべてのServiceディレクティブは無視します。

PathCheckおよびObjectTypeディレクティブでは、NameTransステップの結果としてリクエストに別のオブジェクトが一致した場合、Oracle Traffic Directorは、defaultオブジェクトのディレクティブを処理する前に、一致するオブジェクトのServiceディレクティブを確認します。Oracle Traffic Directorが一致するオブジェクトのServiceディレクティブの実行に成功した場合、Serviceディレクティブの実行は1つのみにかぎられることから、defaultオブジェクトのServiceディレクティブは実行されません。

4.4.9 AddLog

Oracle Traffic Directorは、レスポンスを生成してクライアントに送信した後、AddLogディレクティブを実行してエントリをログ・ファイルに追加します。すべてのAddLogディレクティブが実行されます。Oracle Traffic Directorは、複数のログ・ファイルにエントリを追加します。

4.4.10 Error

リクエストされたリソースに対するアクセスがPathCheckまたはAuthTransディレクティブによって拒否される、またはリクエストされたリソースが存在しないなど、リクエスト処理プロセス中にエラーが発生した場合、SAFによってHTTPレスポンス・ステータス・コードが設定され、値REQ_ABORTEDが返されます。この場合、Oracle Traffic Directorは、リクエストの処理を停止します。かわりに、HTTPレスポンス・ステータス・コードまたは関連する理由フレーズに一致するErrorディレクティブを検索し、そのディレクティブの関数を実行します。Oracle Traffic Directorは、一致するErrorディレクティブを検出できない場合、クライアントにレスポンス・ステータス・コードを返します。

4.5 機能フローの変更

機能フローは、通常のリクエスト処理プロセスから変更される場合があります。これは、内部リダイレクト、再起動およびURI変換機能の実行中に発生します。

4.5.1 リクエストの再起動

リクエストは再起動できます。たとえば、PathCheckディレクティブでは、http://server_name/に対するリクエストをhttp://server_name/index.htmlに対するリクエストとして再起動できます。

4.5.2 内部リクエスト

Oracle Traffic Directorは、内部リクエストを生成できます。たとえば、SHTMLファイルまたはサーブレットにファイルを含めることができます。Oracle Traffic Directorは、元のリクエストの処理中に、このファイルを取得するための内部リクエストを作成します。

4.5.3 URI変換

Oracle Traffic Directorは、AuthTransおよびNameTransディレクティブを実行して、新規リクエストを起動することなくURIを物理パス名に変換できます。

4.6 obj.confの編集

このファイルを変更する場合は慎重に作業してください。単純な間違いでも、Oracle Traffic Directorの起動や動作に障害が発生する可能性があります。

4.6.1 ディレクティブの順序

Oracle Traffic Directorは、obj.confでの出現順序に従って各ディレクティブを実行するため、ディレクティブの順序は重要です。あるディレクティブの結果は、別のディレクティブの実行に影響します。

PathCheckディレクティブの場合、Oracle Traffic DirectorはすべてのPathCheckディレクティブを実行するため、PathCheckセクション内の順序は重要ではありません。ただし、ObjectTypeディレクティブで属性値を設定する場合、他のObjectTypeディレクティブではその値を変更できないため、ObjectTypeセクション内の順序は非常に重要です。

同様に、Serviceセクション内のディレクティブの順序も非常に重要です。Oracle Traffic Directorは、現在のリクエストに一致する最初のServiceディレクティブを実行し、その他のディレクティブは実行しません。

4.6.2 パラメータ

パラメータの数と名前は、各関数に応じて異なります。行におけるパラメータの順序は、重要ではありません。

4.6.3 大/小文字区別

関数名、パラメータ名、パラメータ値、パス名など、obj.confファイル内の項目の大文字と小文字は区別されます。

4.6.4 セパレータ

C言語の関数名は、文字、数字およびアンダースコアで構成されます。Cコードの関数名では、構成ファイルでアンダースコア(_)のかわりにハイフン(-)を使用できます。これは、関数名にのみ適用されます。

4.6.5 引用符

引用符(")は、文字列内に空白がある場合に、値の文字列の前後にのみ必要です。それ以外の場合はオプションです。各開始引用符は、終了引用符に一致している必要があります。

4.6.6 スペース

- 空白は、前の行から続く場合を除き、行頭では使用できません。

- 空白は、名前と値を区切る等号(=)の前後では使用できません。

- 空白は、行末または空の行では使用できません。

4.6.7 行の継続

長い行を次の行に続けるには、次の行を空白またはタブ文字で始めます。

4.6.8 パス名

パス名では、常にスラッシュ(/)を使用します。バックスラッシュは、次の文字をエスケープします。

4.6.9 コメント

コメントは、ポンド記号(#)で始めます。obj.confファイルに手動でコメントを追加する場合、管理コンソールまたはCLIを使用してサーバーに変更を加えます。コメントは、obj.confファイルが更新されると上書きされます。

5 obj.confの事前定義済のサーバー・アプリケーション関数およびフィルタ

この章では、obj.confファイルで使用される事前定義済のサーバー・アプリケーション関数(SAF)およびフィルタについて説明します。obj.confファイルの構文および使用の詳細は、第4章「obj.confの構文および使用」を参照してください。

各SAFには、obj.confディレクティブによって渡される独自のパラメータがあります。SAFは、サーバー変数を調査、変更または作成できます。各SAFは、成功、無効または失敗のいずれであるかを示す結果コードを返します。

この章のSAFは、コール元のディレクティブのタイプによってグループ化されています。事前定義SAFとサーバー構成要素のアルファベット順のリストは、付録D「サーバー構成要素および事前定義SAFのアルファベット順のリスト」を参照してください。

この章の内容は次のとおりです。

- bucketパラメータ

- AuthTrans

- NameTrans

- PathCheck

- ObjectType

- Input

- Output

- Route

- Service

- AddLog

- Error

- 共通SAF

5.1 bucketパラメータ

bucketパラメータは、すべてのSAFに共通です。関数にbucket=bucket-nameパラメータを追加することで(bucket="cache-bucket"など)、obj.confファイルの任意のSAFのパフォーマンスを測定できます。バケット統計は、perfdumpユーティリティによって表示されますが、このユーティリティは、管理者コンソール、CLIまたはservice-dump SAFを通じて設定できます。

次のパフォーマンス・バケットが事前定義されています。

- default-bucketは、ユーザー定義バケットまたは組込みバケットに関連付けられていない関数の統計を記録します。

- all-requestsバケットは、default-bucketのものを含め、すべてのNSAPI SAFのperfdump統計を記録します。

5.2 AuthTrans

Authtransディレクティブは、Oracle Traffic Directorに対し、クライアントにリソースへのアクセスを許可する前に認可をチェックするように指示します。詳細は、4.4.1項「AuthTrans」を参照してください。

この項では、次のAuthTransクラスの関数について詳細に説明します。

- get-sslid

- qos-handler

また、AuthTransディレクティブでは、次の共通SAFも有効です。

- match-browser

- sed-param-name

- sed-param-value

- set-priority

- set-variable

5.2.1 get-sslid

get-sslid関数は、現在のSSLセッションに固有の文字列を取得し、それをSession->clientパラメータ・ブロックのssl-id変数として格納します。

注意:
この関数は、下位互換性を維持する目的で提供されています。get-sslidの機能は、SSL接続の標準的な処理に組み込まれていました。

CGIの起動時に変数ssl-idが存在する場合、それはHTTPS_SESSIONID環境変数としてCGIに渡されます。get-sslid関数にパラメータはなく、常にREQ_NOACTIONが返されます。これはSSLが無効の場合効果はありません。

5.2.2 qos-handler

qos-handler関数は、仮想サーバーにおける現在のサービス品質(QoS)の統計を調査し、統計を記録して、エラーを返すことでQoSパラメータを適用します。この関数は、defaultオブジェクトで構成される最初のAuthTrans関数である必要があります。

例

AuthTrans fn= "qos-handler"

関連項目:
qos-error

5.2.3 webapp-firewall

webapp-firewall関数は、ルール・エンジンの有効化および無効化を制御します。仮想サーバー固有のobj.confにこの関数が存在する場合、その特定の仮想サーバーに対してルール・エンジンが有効であることを示します。

webapp-firewall関数はデフォルトで構成されないため、ルール・エンジンは無効になります。ルール・エンジンが無効の場合、webapp-firewall-ruleset要素により指定された構成ファイル内のディレクティブおよびルールのどちらも適用されません。

注意:

- webapp-firewall-ruleset要素で指定された構成ファイル内でSecRuleEngineディレクティブが指定されている場合、これは無視されます。ただし、SecRuleEngineがDetectionOnlyモードに設定されている場合、これは当てはまりません。

- REQ_PROCEEDを返す可能性があるその他のSAFがある場合、SAF webapp-firewallはリストの最上部に置かれている必要があります。そうでない場合、webapp-firewallの実行はスキップされる可能性があります。

- Webアプリケーション・ファイアウォールの各種ユースケースの詳細は、『Oracle Traffic Director管理者ガイド』の付録「Webアプリケーション・ファイアウォールの例およびユースケース」を参照してください。

表5-1に、webapp-firewall関数のパラメータを示します。これらのパラメータは、webapp-firewall-ruleset要素内で指定された同等の設定より優先されます。

表5-1 webapp-firewallのパラメータ

パラメータ

webapp-firewall-ruleset内の同等の設定

説明

detect-only

DetectionOnly

(オプション)ルール・エンジンによりルールを適用するかどうかを示します。

値trueは、ディレクティブは評価される必要があるが、評価の結果は適用しないことを示します。これは、SecRuleEngineディレクティブをDetectionOnlyに設定することと同等です。値falseは、ルールを適用する必要があることを示します。

このパラメータが指定されず、SecRuleEngineがDetectionOnlyモードに設定されている( webapp-firewall-rulesetにより指定された構成ファイル内で)場合、detect-onlyをtrueに設定したときと動作が同じになります。

process-request-body

SecRequestBodyAccess

(オプション)リクエスト本文がWebアプリケーション・ファイアウォールによって処理されるかどうかを示します。server.xmlのbody-buffer-sizeパラメータが正の値になるよう構成されている場合、Oracle Traffic Directorは、body-buffer-sizeパラメータにより定義された制限を上限として、リクエスト本文をメモリーにバッファします。このパラメータは、Webアプリケーション・ファイアウォールがバッファ済のリクエスト本文にアクセスするかどうかを決定します。値onは、リクエスト本文を処理することを示します。値offは、レスポンス本文を処理しないことを示します。デフォルト値は、webapp-firewall-ruleset要素により指定された構成ファイル内のSecRequestBodyAccessディレクティブ(ある場合)で設定されます。 SecRequestBodyAccessディレクティブが存在しない場合、値はoffとなります。

process-response-body

SecResponseBodyAccess

(オプション)レスポンス本文がWebアプリケーション・ファイアウォールによってバッファおよび処理されるかどうかを示します。レスポンス本文の処理が有効である場合、サーバーは、webapp-firewall-ruleset要素により指定された構成ファイル内のSecResponseBodyLimitディレクティブ(ある場合)で定義された制限を上限として、レスポンス本文全体をメモリーにバッファします。SecResponseBodyLimitディレクティブが存在しない場合、値は524288 (512KB)となります。値onは、レスポンス本文を処理することを示します。値offは、レスポンス本文を処理しないことを示します。デフォルト値は、webapp-firewall-ruleset要素により指定された構成ファイル内のSecResponseBodyAccessディレクティブ(ある場合)で設定されます。SecResponseBodyAccessディレクティブが存在しない場合、値はoffとなります。

5.3 NameTrans

NameTransディレクティブは、仮想URLをサーバーの物理ディレクトリに変換します。NameTransディレクティブは、defaultオブジェクト内に出現する必要があります。詳細は、4.4.2項「NameTrans」を参照してください。

この項では、次のNameTransクラスの関数について詳細に説明します。

- assign-name

- block-request-cookie

- map

- reverse-map

- rewrite

- sed-request-header

- strip-params

また、NameTransディレクティブでは、次の共通SAFも有効です。

- match-browser

- redirect

- restart

- sed-param-name

- sed-param-value

- set-variable

5.3.1 assign-name

assign-name関数は、現在のリクエストに一致するobj.confファイル内のオブジェクトの名前を指定します。Oracle Traffic Directorは、defaultオブジェクトのディレクティブに優先して、名前を指定されたオブジェクトのディレクティブを処理します。

たとえば、defaultオブジェクトに次のディレクティブがあるとします。

NameTrans fn="assign-name" name="personnel" from="/personnel"

Oracle Traffic Directorがhttp://server-name/personnelに対するリクエストを受信したとします。このNameTransディレクティブを処理した後、Oracle Traffic Directorは、obj.confファイル内でpersonnelという名前のオブジェクトを検索し、引き続きpersonnelオブジェクト内のディレクティブを処理します。

assign-name関数は、REQ_NOACTIONを返します。

表5-2に、assign-name関数のパラメータを示します。

表5-2 assign-nameのパラメータ

パラメータ

説明

from

(オプション)影響を受けるパスを指定するワイルドカード・パターン。fromパラメータを指定しない場合、すべてのパスが影響を受けます。

name

このリクエストにディレクティブが適用されるobj.confファイル内の名前付きオブジェクトを追加で指定します。

find-pathinfo-forward

(オプション) Oracle Traffic Directorの関数assign-nameがデフォルトで実行するようにパスの最後から逆方向に検索するのではなく、パス内でntrans-baseの直後から順方向にPATHINFOを検索するようにOracle Traffic Directorに対して指示します。

find-pathinfo-forwardパラメータは、ntrans-baseパラメータがrq->varsに設定されていない場合、無視されます。ntrans-baseは、デフォルトで設定されています。

この機能によって、実行される統計の数が減少し、特定のURLではパフォーマンスが向上する可能性があります。

nostat

(オプション)指定したURLに対してOracle Traffic Directorがstatを実行することを抑止します。

NameTransの関数assign-nameにおけるnostat="virtual-path"の効果によって、Oracle Traffic Directorは、指定されたvirtual-pathに対するstatが失敗すると想定します。したがって、nostatは、システムにvirtual-pathのパスが存在しない場合にのみ使用します。たとえば、NSAPIプラグインのURLに対してnostatを使用し、それらのURLに対する不要なstatを回避してパフォーマンスを向上します。

デフォルトのPathCheckサーバー関数を使用する場合、ntrans-baseが設定されていれば(デフォルト条件)、Oracle Traffic Directorは、パス/ntrans-base/virtual-pathおよび/ntrans-base/virtual-path/*に対してstatを実行しません。ntrans-baseが設定されていなければ、URL /virtual-pathおよび/virtual-path/*に対するstatは実行されません。

例

# This NameTrans directive is in the default object.
NameTrans fn="assign-name" name="proxy-cache" from="/.proxycache"
...
<Object name="proxy-cache">
...additional directives..
</Object>

5.3.2 block-request-cookie

block-request-cookieは、1つのパラメータ、"name"を必要とします。この新しいSAFが導入されて、名前によるリクエストCookieがブロックされます。

表5-4に、block-request-cookie関数のパラメータを示します。

表5-3 block-request-cookieのパラメータ

パラメータ

説明

name

(オプション) obj.confファイル内の名前付きオブジェクトを追加で指定します。名前付きオブジェクトのディレクティブは、このリクエストに適用されます。

5.3.3 マップ

map関数は、リクエストURIを別のサーバーのURLにマップするため、リクエストに対して別のサーバーからサービスを提供するように指定できます。複数のサーバー全体で特定のURIのロード・バランシングを行うには、map関数とset-origin-server関数を組み合せて使用します。map関数は、クライアントがリクエストしているURIで特定の接頭辞を検索します。mapは、接頭辞を検出すると、その接頭辞をミラー・サイトの接頭辞に置き換えます。

表5-4に、map関数のパラメータを示します。

表5-4 mapのパラメータ

パラメータ

説明

from

マップするURI接頭辞。接頭辞の末尾にはスラッシュを含めないでください。

to

リクエストのマップ先となるURL接頭辞。接頭辞の末尾にはスラッシュを含めないでください。このパラメータに指定されたHostとPortの値は、暗黙的に無視されます。

name

(オプション) obj.confファイル内の名前付きオブジェクトを追加で指定します。名前付きオブジェクトのディレクティブは、このリクエストに適用されます。

rewrite-host

(オプション)Host HTTPリクエスト・ヘッダーを、toパラメータで指定されたホストに一致するようにリライトするかどうかを示します。プロキシ・サーバーとオリジン・サーバーが仮想サーバーの同じセットにサービスを提供するリバース・プロキシ構成の場合、rewrite-host="false"を指定できます。デフォルト値: true。これは、Host HTTPリクエスト・ヘッダーをリライトすることを示します。

例

NameTrans fn="map" from="/" name="reverse-proxy" to="/"

関連項目:
set-origin-server

5.3.4 reverse-map

reverse-map関数は、Oracle Traffic Directorがリバース・プロキシとして動作する場合に、HTTPレスポンス・ヘッダーをリライトします。reverse-mapは、特定のレスポンス・ヘッダーのfromパラメータで指定されたURL接頭辞を検索します。from接頭辞がレスポンス・ヘッダー値の先頭に一致する場合、reverse-mapは、一致する部分をto接頭辞に置き換えます。

表5-5に、reverse-map関数のパラメータを示します。

表5-5 reverse-mapのパラメータ

パラメータ

説明

from

リライトするURL接頭辞。

to

from接頭辞のかわりに置き換えるURL接頭辞。

rewrite-location

(オプション) location HTTPレスポンス・ヘッダーをリライトするかどうかを示します。デフォルト値: true (locationヘッダーをリライト)。

rewrite-content-location

(オプション) Content-Location HTTPレスポンス・ヘッダーをリライトするかどうかを示します。デフォルト値: true (Content-Locationヘッダーをリライト)。

rewrite-headername

(オプション) headername HTTPレスポンス・ヘッダーをリライトするかどうかを示します。headernameは、ユーザー定義のヘッダー名です。LocationおよびContent-Locationヘッダーは例外です。デフォルト値: false (headernameヘッダーをリライトしない)。

例

NameTrans fn="reverse-map" from="http://download.oracle.com/app/docs" to="/docs"

関連項目:
map

5.3.5 rewrite

rewrite関数では、URIとファイル・システム・パス間で柔軟なマッピングが可能になります。

次の表に、rewrite関数のパラメータを示します。

表5-6 rewriteのパラメータ

パラメータ

説明

from

(オプション)リライトするリクエストのパスを指定するワイルドカード・パターン。デフォルトではすべてのパスに一致します。

root

(オプション)有効なルート・ドキュメント・ディレクトリへのファイル・システム・パス。

name

(オプション)このリクエストにディレクティブが適用されるobj.conf内のオブジェクトの名前。

path

(オプション)リライトされる部分パス。空でない場合、パスはスラッシュ(/)で始める必要があります。

例

次のobj.confコードは、URI /~user/index.htmlに対するリクエストをファイル・システム・パス/home/user/public_html/index.htmlにマップします。

<If $path =~ "^/~([^/]+)(|/.*)$">
NameTrans fn="rewrite"
root="/home/$1/public_html"
path="$2"
</If>

関連項目:
restart

5.3.6 sed-request-header

sed-request-headerは、リクエスト・ヘッダーをリライトし、"name"および"sed"の2つのパラメータが必要です。

次の表に、sed-request-header関数のパラメータを示します。

表5-7 sed-request-headerのパラメータ

パラメータ

説明

name

指定された変数のヘッダー名。

sed

指定した変数のsed式の値。

例

次のようにして、指定したリクエスト・ヘッダーの値をリライトします
NameTrans fn="sed-request=header" name="x-someheader" sed="s/abcd/123/g"

5.3.7 strip-params

strip-params関数は、埋め込まれたセミコロン区切りのパラメータをパスから削除します。たとえば、/dir1;param1/dir2というURIは、/dir1/dir2というパスになります。使用する場合、strip-params関数は、最初のNameTransディレクティブとしてリストする必要があります。

例

NameTrans fn="strip-params"

5.4 PathCheck

PathCheckディレクティブは、NameTransステップの後に返されるURLをチェックし、指定したオリジン・サーバーへのアクセスをクライアントが許可されているかどうかを確認します。詳細は、4.4.3項「PathCheck」を参照してください。

この項では、次のPathCheckクラスの関数について詳細に説明します。

- check-request-limits

- deny-existence

- get-client-cert

- nt-uri-clean

- ssl-logout

- unix-uri-clean

また、PathCheckディレクティブでは、次の共通SAFも有効です。

- match-browser

- restart

- sed-param-name

- sed-param-value

- set-variable

5.4.1 check-request-limits

check-request-limits関数は、特定の属性(クライアントIPアドレスなど)に一致する着信リクエストを監視し、構成可能な時間間隔において1秒当たりの平均リクエストを計算します。監視対象属性に一致するリクエストが、構成されたしきい値を超えると、後続の一致するリクエストはリクエスト・レートが低下するまでサービスを提供されません。この関数を使用して、サービス拒否攻撃の可能性を検出します。

max-rpsまたはmax-connectionsを指定する必要があり、指定しないとcheck-request-limitsでは何も実行されません。監視する1つ以上の属性を入力しない場合、関数によってすべてのリクエストが監視されます。

デフォルトでは、リクエストのエントリは消去前に関数により300秒(5分)間保持されます。この時間を調整するには、magnus.confファイルのinit-request-limits SAFを使用します。

表5-8に、check-request-limits関数のパラメータを示します。

表5-8 check-request-limitsのパラメータ

パラメータ

説明

max-rps

(オプション)一致するリクエストの1秒当たりのしきい値。このしきい値を超えると、基準に一致する後続の接続にサービスが提供されません。使用可能なしきい値はサイトごとに大きく変わる可能性があるため、このパラメータにデフォルト値はありません。

max-connections

(オプション)一致する同時接続の最大数。Oracle Traffic Directorが基準に一致するリクエストを受信し、その場合に現在処理中の一致するリクエストの数がこの数以上であると、リクエストは拒否されます。

この数は、任意の時点での現行リクエストであり、intervalパラメータとは無関係であることに注意してください。同時リクエストの数がこの制限を下回ると、すぐに一致する新しいリクエストが処理されます。

使用可能な値はサイトごとに大きく変わる可能性があるため、このパラメータにデフォルト値はありません。

interval

(オプション)1秒当たりの平均リクエストを計算するための時間間隔(秒単位)。max-rpsの制限は、次のリクエスト・レートが計算されるまで適用されません。潜在的な攻撃者は、この間隔中は無制限にリクエストに対するサービスを受けることができるため、この間隔の長さと1秒当たりの最大リクエストを再計算する場合のパフォーマンス上のコストを比較して調整してください。デフォルト値: 30秒。

continue

(オプション)ブロックされたリクエスト・タイプを再度サービス対象とするために、一致する必要のある条件。

有効な値は次のとおりです。

- silence - サービスを再開するには、拒否されたリクエストが後続の間隔で0まで低下する必要があります。

- threshold - サービスを再開するには、拒否されたリクエストがmax-rpsの値を下回る必要があります。

デフォルト値: threshold。

error

(オプション)ブロックされたリクエストに使用するHTTPステータス・コード。デフォルト値: 503 (Service Unavailableエラー)。

monitor

(オプション)監視するリクエスト属性。リクエスト・レートは、このパラメータの値で名前を指定されたバケットで追跡されます。monitorパラメータを指定しない場合、一致するリクエストは、無名(匿名)バケットで追跡されます。これらのバケットは、標準のobj.confのbucketパラメータで指定するバケットとは異なることに注意してください。

monitorパラメータの値は固定文字列にすることも可能ですが、事前定義変数(monitor="$ip"など)を使用すると非常に便利です。複数の変数をコロンで区切って、たとえばmonitor="$ip:$uri"のように指定することもできます。

事前定義変数のリストは、「事前定義変数」を参照してください。

例

次の例では、デフォルトの30秒間隔で、最大リクエスト・レートとして1秒当たり10リクエストにクライアントIPを制限します。

PathCheck fn="check-request-limit" monitor="$ip" max-rps="10"

次の例では、Perl CGIへのアクセス時に、最大リクエスト・レートとして1秒当たり10リクエストにクライアントIPを制限します。他のタイプのリクエストは制限されません。

<If path = "*.pl">
PathCheck fn="check-request-limits" monitor="$ip" max-rps="10"
</If>

Ifタグの使用の詳細は、「If、ElseIfおよびElse」を参照してください。

次の例では、Perl CGIに対するリクエストを1秒当たり10リクエストにグローバルに制限します。特定のmonitorパラメータは指定されません。

<If path = "*.pl">
PathCheck fn="check-request-limits" max-rps="10"
</If>

次の例では、クライアントIPが1秒当たり10を超えるPerl CGIリクエストを生成しないように、または1秒当たり5を超えるJSPリクエストを生成しないように制限します。PerlとJSPの合計を個別に追跡するには、指定するmonitorパラメータに固定文字列識別子とクライアントIP変数の両方を含めます。

<If path = "*.pl">
PathCheck fn="check-request-limits" max-rps="10" monitor="perl:$ip"
</If>
<If path = "*.jsp">
PathCheck fn="check-request-limits" max-rps="5" monitor="jsp:$ip"
</If>

次の例では、所定の時間において1つのクライアントIPを5以下の接続に制限します。

PathCheck fn="check-request-limits" max-connections="2" monitor="$ip"

5.4.2 deny-existence

deny-existence関数は、クライアントが指定したパスへのアクセスを試行したときに、404 Not Foundメッセージを送信します。

表5-9に、deny-existence関数のパラメータを示します。

表5-9 deny-existenceのパラメータ

パラメータ

説明

path

(オプション)隠蔽するファイル・システム・パスのワイルドカード・パターン。パスに一致しない場合、関数は何も実行せず、REQ_NOACTIONを返します。パスが指定されない場合、一致しているとみなされます。

bong-file

(オプション) 404 Not Foundメッセージで応答するかわりに送信するファイルを指定します。値は、ファイル・システムのフルパスです。

例

PathCheck fn="deny-existence" path="/opt/oracle/webserver7/docs/private"

PathCheck fn="deny-existence" bong-file="/svr/msg/go-away.html"

5.4.3 get-client-cert

get-client-cert関数は、SSL3セッションから認証済のクライアント証明書を取得します。これは、すべてのHTTPメソッドに適用されるか、指定したパターンに一致するものだけに適用されます。これは、Oracle Traffic DirectorでSSLが有効な場合にのみ動作します。

証明書が存在するか、SSL3セッションから取得されると、関数はREQ_NOACTIONを返し、リクエストは処理を継続できます。それ以外の場合は、REQ_ABORTEDを返し、プロトコル・ステータスを403 forbiddenに設定するため、リクエストは失敗します。

次の表に、get-client-cert関数のパラメータを示します。

表5-10 get-client-certのパラメータ

パラメータ

説明

dorequest

(オプション)証明書を取得するか、その存在についてテストするのみかを制御します。

- 1の場合、Oracle Traffic Directorがまだクライアント証明書を保持していなければ、SSL3ハンドシェイクをやり直してクライアント証明書を取得するように関数に指示します。これにより、通常、クライアントでは、クライアント証明書を選択するためのダイアログ・ボックスがユーザーに表示されます。最初のハンドシェイクでリクエスト済の場合や、キャッシュされたSSLセッションが再開された場合、Oracle Traffic Directorはすでにクライアント証明書を保持している可能性があります。

- 0の場合、Oracle Traffic Directorがまだクライアント証明書を保持していなければ、SSL3ハンドシェイクをやり直さないように関数に指示します。
証明書がクライアントから取得され、Oracle Traffic Directorによる検証に成功すると、DERエンコードのX.509証明書のASCII BASE64エンコーディングが、Request->vars pblockのパラメータauth-certに配置され、関数はREQ_PROCEEDを返し、リクエストは処理を継続できます。

デフォルト値: 0。

require

(オプション)クライアント証明書の取得に失敗した場合にHTTPリクエストを中断するかどうかを制御します。

- 1の場合、dorequestを処理した後にクライアント証明書が存在しなければ、HTTPリクエストを中断するように関数に指示します。この場合、HTTPステータスはPROTOCOL_FORBIDDENに設定され、関数はREQ_ABORTEDを返します。

- 0の場合、dorequestを処理した後にクライアント証明書が存在しなければ、REQ_NOACTIONを返すように関数に指示します。

デフォルト値: 1。

method

(オプション)関数を適用するHTTPメソッドのワイルドカード・パターンを指定します。methodが存在しない場合、関数はすべてのリクエストに適用されます。

例

# Get the client certificate from the session.
# If a certificate is not already associated with the session, request one.
# The request fails if the client does not present a
#valid certificate.
PathCheck fn="get-client-cert" dorequest="1"

5.4.4 nt-uri-clean

(Windowsのみ) nt-uri-clean関数は、物理パスに\.\、\..\または\\が含まれるリソースに対するアクセスを拒否します(これらはセキュリティ問題を引き起こす可能性があります)。

表5-11に、nt-uri-clean関数のパラメータを示します。

表5-11 nt-uri-cleanのパラメータ

パラメータ

説明

tildeok

(オプション)存在する場合、URIでチルダ文字(~)が許可されます。たとえば、longfi~1.htmでlongfilename.htmを参照する一方で、適切なACLチェックを経由しないWindowsプラットフォームでは、これは潜在的なセキュリティ・リスクとなります。存在する場合、//シーケンスが許可されます。

dotdirok

(オプション)存在する場合、/./シーケンスが許可されます。

例

PathCheck fn="nt-uri-clean"

関連項目:
unix-uri-clean

5.4.5 ssl-logout

ssl-logout関数は、Oracle Traffic DirectorのSSLセッション・キャッシュの現在のSSLセッションを無効化します。これは、現在のリクエストには影響しませんが、次回クライアントが接続を行ったときに、新しいSSLセッションが作成されます。SSLが有効な場合、この関数は、セッション・キャッシュ・エントリを無効化した後、REQ_PROCEEDを返します。SSLが無効な場合、REQ_NOACTIONを返します。

5.4.6 unix-uri-clean

(UNIXのみ) unix-uri-clean関数は、物理パスに/./、/../または//が含まれるリソースに対するアクセスを拒否します(これらはセキュリティ問題を引き起こす可能性があります)。

次の表に、unix-uri-clean関数のパラメータを示します。

表5-12 unix-uri-cleanのパラメータ

パラメータ

説明

dotdirok

存在する場合、/./シーケンスが許可されます。

例

PathCheck fn="unix-uri-clean"

関連項目:
nt-uri-clean

5.5 ObjectType

ObjectTypeディレクティブは、リクエストへのレスポンスとしてクライアントに送信する必要のあるファイルのMIMEタイプを決定します。詳細は、「ObjectType」を参照してください。

この項では、次のObjectTypeクラスの関数について詳細に説明します。

- block-auth-cert

- block-cache-info

- block-cipher

- block-ip

- block-issuer-dn

- block-jroute

- block-keysize

- block-proxy-agent

- block-secret-keysize

- block-ssl

- block-ssl-id

- block-user-dn

- block-via

- block-xforwarded-for

- forward-auth-cert

- forward-cache-info

- forward-cipher

- forward-ip

- forward-issuer-dn

- forward-jroute

- forward-keysize

- forward-proxy-agent

- forward-secret-keysize

- forward-ssl

- forward-ssl-id

- forward-user-dn

- forward-via

- forward-xforwarded-for

- http-client-config

- proxy-cache-config

- proxy-cache-override-http

- proxy-websocket-config

- reverse-block-date

- reverse-block-server

- reverse-forward-date

- reverse-forward-server

- set-basic-auth

- set-cache-control

- set-cookie

- type-by-exp

- type-by-extension

また、ObjectTypeディレクティブでは、次の共通SAFも有効です。

- match-browser

- sed-param-name

- sed-param-value

- set-variable

5.5.1 block-auth-cert

block-auth-cert関数は、Oracle Traffic Directorに対し、独自のProxy-auth-certヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-auth-cert"

関連項目:
forward-auth-cert

5.5.2 block-cache-info

block-cache-info関数は、Oracle Traffic Directorに対し、独自のProxy-cache-infoヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-cache-info"

関連項目:
forward-cache-info

5.5.3 block-cipher

block-cipher関数は、Oracle Traffic Directorに対し、独自のProxy-cipherヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-cipher"

関連項目:
forward-cipher

5.5.4 block-ip

block-ip関数は、Oracle Traffic Directorに対し、独自のClient-ipヘッダー(またはWebLogic Serverの場合はWl-proxy-client-ipヘッダー)を生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-ip"

関連項目:
forward-ip

5.5.5 block-issuer-dn

block-issuer-dn関数は、Oracle Traffic Directorに対し、独自のProxy-issuer-dnヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-issuer-dn"

関連項目:
forward-issuer-dn

5.5.6 block-jroute

block-jroute関数は、Oracle Traffic Directorに対し、独自のProxy-jrouteヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-jroute"

関連項目:
forward-jroute

5.5.7 block-keysize

block-keysize関数は、Oracle Traffic Directorに対し、独自のProxy-keysizeヘッダー(またはWebLogic Serverの場合はWl-proxy-client-keysizeヘッダー)を生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-keysize"

関連項目:
forward-keysize

5.5.8 block-proxy-agent

block-proxy-agent関数は、Oracle Traffic Directorに対し、独自のProxy-agentヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-proxy-agent"

関連項目:
forward-proxy-agent

5.5.9 block-secret-keysize

block-secret-keysize関数は、Oracle Traffic Directorに対し、独自のProxy-secret-keysizeヘッダー(またはWebLogic Serverの場合はWl-proxy-client-secretkeysizeヘッダー)を生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-secret-keysize"

関連項目:
forward-secret-keysize

5.5.10 block-ssl

block-ssl関数は、Oracle Traffic Directorに対し、独自のProxy-sslヘッダー(またはWebLogic Serverの場合はWl-proxy-sslヘッダー)を生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-ssl"

関連項目:
forward-ssl

5.5.11 block-ssl-id

block-ssl-id関数は、Oracle Traffic Directorに対し、独自のProxy-ssl-idヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-ssl-id"

関連項目:
forward-ssl-id

5.5.12 block-user-dn

block-user-dn関数は、Oracle Traffic Directorに対し、独自のProxy-user-dnヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-user-dn"

関連項目:
forward-user-dn

5.5.13 block-via

block-via関数は、Oracle Traffic Directorに対し、独自のViaヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-via"

関連項目:
forward-via

5.5.14 block-xforwarded-for

block-xforwarded-for関数は、Oracle Traffic Directorに対し、独自のX-forwarded-forヘッダーを生成してオリジン・サーバーに転送しないよう指示します。さらに、着信リクエストにこのヘッダーが含まれる場合、SAFはOracle Traffic Directorに対し、このヘッダーが含まれる着信リクエストをオリジン・サーバーに受け渡すことを許可します。

例

ObjectType fn="block-xforwarded-for"

関連項目:
forward-xforwarded-for

5.5.15 forward-auth-cert

forward-auth-cert関数は、Oracle Traffic Directorに対し、ヘッダーProxy-auth-cert内にクライアントのSSL/TLS証明書に関する情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーProxy-auth-certが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-13に、forward-auth-cert関数のパラメータを示します。

表5-13 forward-auth-certのパラメータ

パラメータ

説明

hdr

(オプション) BASE64エンコーディングでクライアントのDERエンコードのSSL/TLS証明書を伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Proxy-auth-cert。

関連項目:
block-auth-cert

5.5.16 forward-cache-info

forward-cache-info関数は、Oracle Traffic Directorに対し、ヘッダーCache-info内にローカル・ヒットに関する情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーCache-infoが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-14に、forward-cache-info関数のパラメータを示します。

表5-14 forward-cache-infoのパラメータ

パラメータ

説明

hdr

(オプション)ローカル・キャッシュ・ヒットに関する情報を伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Cache-info。

関連項目:
block-cache-info

5.5.17 forward-cipher

forward-cipher関数は、Oracle Traffic Directorに対し、ヘッダーProxy-cipher内にクライアントのSSL/TLS暗号スイートに関する情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーProxy-cipherが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-15に、forward-cipher関数のパラメータを示します。

表5-15 forward-cipherのパラメータ

パラメータ

説明

hdr

(オプション)クライアントのSSL/TLS暗号スイートの名前を伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Proxy-cipher。

関連項目:
block-cipher

5.5.18 forward-ip

forward-ip関数は、Oracle Traffic Directorに対し、ヘッダーClient-ip(またはWebLogic Serverの場合はWI-proxy-client-ip)内にクライアントのIPアドレスを生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーClient-ip(またはWebLogic Serverの場合はWI-proxy-client-ip)が含まれる場合、このSAFによりOracle Traffic Directorは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。次に、Oracle Traffic Directorは適切な値でこのヘッダーを生成し挿入してから、オリジン・サーバーにリクエストを転送します。

表5-16に、forward-ip関数のパラメータを示します。

表5-16 forward-ipのパラメータ

パラメータ

説明

hdr

(オプション)クライアントのIPアドレスを伝達するために使用するHTTPリクエスト・ヘッダーの名前。

デフォルト値: オリジン・サーバーが非WLSである場合はClient-ip、オリジン・サーバーがWLSである場合はWI-proxy-client-ip。

関連項目:
block-ip

5.5.19 forward-issuer-dn

forward-issuer-dn関数は、Oracle Traffic Directorに対し、ヘッダーProxy-issuer-dn内にクライアントのSSL/TLS証明書に関する情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーProxy-issuer-dnが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-17に、forward-issuer-dn関数のパラメータを示します。

表5-17 forward-issuer-dnのパラメータ

パラメータ

説明

hdr

(オプション)クライアントのSSL/TLS証明書の発行者の識別名を伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Proxy-issuer-dn。

関連項目:
block-issuer-dn

5.5.20 forward-jroute

forward-jroute関数は、Oracle Traffic Directorに対し、ヘッダーProxy-jroute内にリクエストのルーティングに関する情報を生成してオリジン・サーバーに転送するよう指示します。Proxy-jrouteヘッダー・フィールドは、セッションの固定性を実装するため、set-origin-server関数と一部のサーブレット・コンテナによって使用されます。着信リクエストにヘッダーProxy-jrouteが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-18に、forward-jroute関数のパラメータを示します。

表5-18 forward-jrouteのパラメータ

パラメータ

説明

hdr

(オプション)リクエスト・ルーティング情報を伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Proxy-jroute。

関連項目:
「block-jroute」、「set-origin-server」

5.5.21 forward-keysize

forward-keysize関数は、Oracle Traffic Directorに対し、ヘッダーProxy-keysize内にクライアントのSSL/TLSの鍵サイズに関する情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーProxy-keysizeが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-19に、forward-keysize関数のパラメータを示します。

表5-19 forward-keysizeのパラメータ

パラメータ

説明

hdr

(オプション)クライアントのSSL/TLSの鍵サイズを伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Proxy-keysize。

関連項目:
block-keysize

5.5.22 forward-proxy-agent

forward-proxy-agent関数は、Oracle Traffic Directorに対し、ヘッダーProxy-agent内にバージョン情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーProxy-agentが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-20に、forward-proxy-agent関数のパラメータを示します。

表5-20 forward-proxy-agentのパラメータ

パラメータ

説明

hdr

(オプション)サーバー・バージョンを伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Proxy-agent。

関連項目:
「block-proxy-agent」、「http-client-config」

5.5.23 forward-secret-keysize

forward-secret-keysize関数は、Oracle Traffic Directorに対し、ヘッダーProxy-secret-keysize(またはWebLogic Serverの場合はWl-proxy-client-secretkeysize)内にクライアントのSSL/TLSの秘密鍵サイズに関する情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーProxy-secret-keysize(またはWebLogic Serverの場合はWl-proxy-client-secretkeysize)が含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-21 forward-secret-keysizeのパラメータ

パラメータ

説明

hdr

(オプション)クライアントのSSL/TLS秘密鍵を伝達するために使用するHTTPリクエスト・ヘッダーの名前。

デフォルト値: オリジン・サーバーが非WLSである場合はProxy-secret-keysize、オリジン・サーバーがWLSである場合はWl-proxy-client-secretkeysize。

例

ObjectType fn="forward-secret-keysize"

関連項目:
block-secret-keysize

5.5.24 forward-ssl

forward-ssl関数はサーバーに対し、リモート(オリジン)サーバーに情報を転送し、クライアントがSSL接続を介してOracle Traffic Directorにリクエストを送信したかどうかをチェックするよう指示します。その結果、クライアントが非SSL接続を使用してOTDに接続している場合、このヘッダーには値Falseが設定されます。同様に、クライアントがSSL接続を使用してOTDに接続している場合、このヘッダーには値Trueが設定されます。着信リクエストにヘッダーProxy-ssl(またはWebLogic Serverの場合はWI-proxy-ssl)が含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-22 forward-ssl

パラメータ

説明

hdr

クライアントとOTDとの接続がSSLを介して行われたことを伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: オリジン・サーバーが非WLSである場合はProxy-ssl、オリジン・サーバーがWLSである場合はWI-proxy-ssl。

例

ObjectType fn="forward-ssl"

関連項目:
block-ssl

5.5.25 forward-ssl-id

forward-ssl-id関数は、Oracle Traffic Directorに対し、ヘッダーProxy-ssl-id内にクライアントのSSL/TLSセッションIDに関する情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーProxy-ssl-idが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-23に、forward-ssl-id関数のパラメータを示します。

表5-23 forward-ssl-idのパラメータ

パラメータ

説明

hdr

(オプション)クライアントのSSL/TLSセッションIDを伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Proxy-ssl-id。

関連項目:
block-ssl-id

5.5.26 forward-user-dn

forward-user-dn関数は、Oracle Traffic Directorに対し、ヘッダーProxy-user-dn内にクライアントのSSL/TLS証明書のサブジェクトの識別名に関する情報を生成してオリジン・サーバーに転送するよう指示します。着信リクエストにヘッダーProxy-user-dnが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-24に、forward-user-dn関数のパラメータを示します。

表5-24 forward-user-dnのパラメータ

パラメータ

説明

hdr

(オプション)クライアントのSSL/TLS証明書のサブジェクトの識別名を伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Proxy-user-dn。

関連項目:
block-user-dn

5.5.27 forward-via

forward-via関数は、Oracle Traffic Directorに対し、ヘッダーVia内にリクエストのルーティングに関する情報を生成し、HTTP/1.1 Via形式を使用してオリジン・サーバーに転送するよう指示します。HTTP/1.1 Viaヘッダー・フィールドは、リクエストのルーティングに関連するプロキシ・サーバーとプロトコル・バージョンを記録します。着信リクエストにヘッダーViaが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-25に、forward-via関数のパラメータを示します。

表5-25 forward-viaのパラメータ

パラメータ

説明

hdr

(オプション)ルーティング情報を伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: Via。

関連項目:
block-via

5.5.28 forward-xforwarded-for

forward-xforwarded-for関数は、Oracle Traffic Directorに対し、ヘッダーX-Forwarded-For内にユーザー指定のX-Forwarded-Forヘッダー値に関する情報を生成してオリジン・サーバーに転送するよう指示します。関数が有効な場合、Oracle Traffic Directorは、X-Forwarded-Forヘッダー値をオリジン・サーバーに送信します(値は、IPアドレスのカンマ区切りリストです)。このSAFはデフォルトで有効です。着信リクエストにヘッダーX-forwarded-forが含まれる場合、このSAFによりOTDは、オリジン・サーバーに転送されるリクエストからヘッダーを削除します。

表5-26 forward-xforwarded-for

パラメータ

説明

hdr

(オプション)ルーティング情報を伝達するために使用するHTTPリクエスト・ヘッダーの名前。デフォルト値: X-forwarded-for。

例

ObjectType fn="forward-xforwarded-for"

関連項目:
block-xforwarded-for

5.5.29 http-client-config

http-client-config関数は、Oracle Traffic DirectorのHTTPクライアントを構成します。

表5-27に、http-client-config関数のパラメータを示します。

表5-27 http-client-configのパラメータ

パラメータ

説明

always-use-keep-alive

(オプション) HTTPクライアントですべてのタイプのリクエストに既存の永続接続を再利用するかどうかを示します。デフォルト値: WLSオリジン・サーバーはtrueです。これは、デフォルトでGET/HEAD/OPTIONSリクエストでキープ・アライブを使用することを示します。

exclude-escape-chars

(オプション) Oracle Traffic Directorでエスケープしない文字のリストを指定します。アプリケーション・サーバーにデプロイされた様々なアプリケーションで、一定の文字のエスケープは禁止されます。このパラメータを指定しない場合、Oracle Traffic Directorによってそれらの文字がエスケープされる可能性があります。次に例を示します。

ObjectType fn="http-client-config" exclude-escape-chars="%&"

keep-alive

(オプション) HTTPクライアントで永続接続を使用するかどうかを示します。デフォルト値: true。

keep-alive-timeout

(オプション)永続接続のオープン状態を維持する最大秒数。デフォルト値: 29。

log-headers

(オプション) Oracle Traffic Directorがオリジン・サーバーを対象に送受信したリクエスト・ヘッダーまたはレスポンス・ヘッダーをサーバー・ログに記録するかどうかを指定します。このパラメータは、診断目的で役立ちます。

次に例を示します。

ObjectType fn="http-client-config" log-headers="true"

protocol

(オプション) HTTPプロトコルのバージョン文字列。デフォルトで、HTTPクライアントは、HTTPリクエストのコンテンツに基づいてHTTP/1.0またはHTTP/1.1を使用します。一般的には、プロトコルの相互運用性に関する特定の問題が発生しなければ、protocolパラメータは使用しません。

proxy-agent

(オプション) proxy-agent HTTPリクエスト・ヘッダーの値。デフォルトは、Webサーバーの製品名とバージョンを含む文字列です。

proxy-buffer-size

(オプション)データをクライアントに送信する前に格納するためにOracle Traffic Directorで使用するバッファのサイズを指定します。バッファ・サイズが大きくなるほど、writeシステム・コールの数は少なくなります。デフォルトでは、プロキシ・バッファ・サイズの値は16KBです。値を32KBに変更するには、パラメータを次のように使用します。

ObjectType fn="http-client-config" proxy-buffer-size="32768"

再試行

(オプション)クライアントにエラーを送信する前にオリジンWebサーバーからコンテンツを取得するための再試行回数。GET/HEAD/OPTIONSリクエストのみが再試行されます。GETリクエストに本文が関連付けられている場合、それらのリクエストは再試行されません。許容可能な値は0から100です。値0を指定すると、再試行は許されません。デフォルト値: 3。

例

ObjectType fn="http-client-config" keep-alive="false"

5.5.30 proxy-cache-config

proxy-cache-config関数は、リバース・プロキシのキャッシュ設定を構成します。

表5-28に、proxy-cache-config関数のパラメータを示します。

表5-28 proxy-cache-configのパラメータ

パラメータ

データ型

説明

デフォルト値

enabled

Boolean

リバース・プロキシ・コンテンツのキャッシュを有効化または無効化します。

false

max-reload-interval

Integer

(オプション)最新であることを連続的にチェックする間隔として許容される最大時間(秒単位)を指定します。0 (デフォルト値)に設定すると、ドキュメントがアクセスされるたびにチェックが実行され、last-modified-factor値の効果はなくなります。

注意: この要素の値を設定すると、サーバーは、HTTP仕様の規定内容とは異なる動作をします。

3600

min-reload-interval

Integer

キャッシュされたドキュメントが最新であることを連続的にチェックする間隔として許容される最小時間(秒単位)を指定します。

0

last-modified-factor

Float

(オプション)失効時間の見積りに使用されるファクタを表します。これにより、最終変更時刻に基づいてドキュメントが最新状態である期間が定義されます。最終変更後に経過した時間には、このファクタが乗じられます。結果として、ドキュメントの未変更状態が続く可能性のある推定時間が得られます。値0を指定すると、この関数は無効になります。キャッシュ・システムは、ほとんど使用できない明示的な失効時間情報のみを使用します。明示的なCache-ControlまたはExpires HTTPヘッダーのみが使用されます。max-reload-intervalが0に設定されている場合、この値は無効です。

0

min-object-size

Integer

キャッシュされるドキュメントの最小サイズ(バイト単位)。これは、よりサイズの大きいドキュメントのみをキャッシュする場合に便利です。

0

max-object-size

Integer

指定された値にキャッシュする文書の最大サイズを制限します。この値は、proxy-cache->max-heap-object-sizeのserver.xmlに指定された最大値を超えることはできません。

proxy-cache->max-heap-object-size

query-maxlen

Integer

問合せ文字列(キャッシュ可能なURL末尾の?string部分)の文字数を指定します。同じ問合せが複数のユーザーによって正確に同じ形式で繰り返されることはめったにないため、通常、これらをキャッシュすることは推奨されません。

0

compression

Boolean

このパラメータをtrueに設定すると、プロキシは、ドキュメントを格納する前に圧縮します。これにより、キャッシュ領域が節約されるため、指定したキャッシュ・サイズでより多くのエントリを格納できます。圧縮を受け入れるクライアントの場合、圧縮コンテンツが送信されます。他のクライアントの場合、サーバーは、コンテンツを動的に解凍します。キャッシュでは、同じコンテンツの2つのコピーは格納されません。

false

cache-https

Boolean

このパラメータをtrueに設定すると、HTTPS接続からのレスポンスがキャッシュされます。cache-httpsがfalseの場合、HTTPSオリジン・サーバー接続からのレスポンスは、HTTPヘッダーにかかわらずキャッシュされません。

false

例

ObjectType fn="proxy-cache-config" enable="1" max-reload-interval=300 min-reload-interval=60

関連項目:
「proxy-cache-override-http」、「service-proxy-cache-dump」

5.5.31 proxy-cache-override-http

proxy-cache-override-http関数は、特定のHTTPキャッシュ・ルールをオーバーライドするリバース・プロキシのキャッシュ・パラメータを構成します。

表5-29に、proxy-cache-override-http関数のパラメータを示します。

表5-29 proxy-cache-override-httpのパラメータ

パラメータ

データ型

説明

デフォルト値

ignore-server-no-cache

Boolean

このパラメータをtrueに設定すると、オリジン・サーバーからのpragma: no-cacheまたはcache-control: no-cacheヘッダーは無視され、レスポンスはキャッシュされます。この動作は、HTTP標準とは異なります。

false

ignore-server-no-store

Boolean

このパラメータをtrueに設定すると、オリジン・サーバーからのcache-control: no-storeヘッダーは無視され、レスポンスはキャッシュされます。この動作は、HTTP標準とは異なります。

false

ignore-private

Boolean

このパラメータをtrueに設定すると、オリジン・サーバーからのcache-control: privateヘッダーは無視され、レスポンスはキャッシュされます。この動作は、HTTP標準とは異なります。

false

ignore-client-no-cache

Boolean

trueに設定すると、クライアントからのpragma: no-cacheまたはcache-control: no-cacheヘッダーは無視され、リクエストはキャッシュによって対応されます。この動作は、HTTP標準とは異なります。

false

override-expire

Boolean

このパラメータをtrueに設定すると、Expiresヘッダーの値およびCache-Control: max-ageの値に優先してmin-reload-intervalが適用されます。この動作は、HTTP標準とは異なります。

false

override-lastmod

Boolean

このパラメータをtrueに設定すると、Last-modifiedヘッダーの値に優先してmin-reload-intervalが適用されます。この動作は、HTTP標準とは異なります。

false

reload-into-ims

Boolean

このパラメータをtrueに設定すると、クライアントからの再ロード・リクエストは、If-modified-sinceヘッダーを含む条件付きのGETリクエストに変換されます。この動作は、HTTP標準とは異なります。

true

require-expires

Boolean

このパラメータをtrueに設定すると、Expiresヘッダーのないレスポンスはキャッシュされません。この動作は、HTTP標準とは異なります。

false

without-lastmod

Boolean

このパラメータをtrueに設定すると、Last-modifiedヘッダーの欠落は無視され、レスポンスはキャッシュされます。この動作は、HTTP標準とは異なります。

false

例

<If uri =~ '^/images/'>    ObjectType fn="proxy-cache-config" enable="1" max-reload-interval=600
ObjectType fn="proxy-cache-override-http" ignore-client-no-cache="true"
</If>
<Else uri =~ '^/myapp/'>
ObjectType fn="proxy-cache-config" enable="1" max-reload-interval=120
</Else>

関連項目:
「proxy-cache-config」、「service-proxy-cache-dump」

5.5.32 proxy-websocket-config

proxy-websocket-config SAFは、WebSocketアップグレードを無効にし、WebSocket接続のidle-timeoutを変更します。WebSocketアップグレードはデフォルトで有効です。WebSocketアップグレードを無効にする必要がある場合、enabledをoffに指定してproxy-websocket-configを使用できます。proxy-websocket-configディレクティブは、ルートではルート・オブジェクトに、また仮想サーバー全体ではデフォルト・オブジェクトに存在します。これにより管理者は、WebSocketトラフィックを無効にしたり、特定のルートまたは仮想サーバー全体に異なるidle-timeout値を設定できます。

表5-30に、proxy-cache-override-http関数のパラメータを示します。

表5-30 proxy-websocket-configのパラメータ

パラメータ

デフォルト値

enabled

onまたはoff

idle-timeout

デフォルトは、tcp-thread-pool要素に指定されたタイムアウト値です。

例

ObjectType fn="proxy-websocket-config"

5.5.33 reverse-block-date

reverse-block-date SAFは、オリジン・サーバーから送信されるDateヘッダーをブロックし、Oracle Traffic Directorが独自のDateヘッダーを生成してレスポンスに挿入するようにします。

例

ObjectType fn="reverse-block-date"

関連項目:
reverse-forward-date

5.5.34 reverse-block-server

reverse-block-server SAFは、オリジン・サーバーから送信されるServerヘッダーをブロックし、Oracle Traffic Directorが独自のServerヘッダーをレスポンスに挿入するようにします。

例

ObjectType fn="reverse-block-server"

関連項目:
reverse-forward-server

5.5.35 reverse-forward-date

reverse-forward-date SAFは、オリジン・サーバーから送信されるDateヘッダーを転送します。Oracle Traffic Directorでは、これはデフォルトの動作です。

例

ObjectType fn="reverse-forward-date"

関連項目:
reverse-block-date

5.5.36 reverse-forward-server

reverse-forward-server SAFは、オリジン・サーバーから送信されるServerヘッダーを転送します。オリジン・サーバーがServerヘッダーを生成しない場合、Oracle Traffic Directorが独自のServerヘッダーを生成して使用します。これはデフォルトの動作です。

例

ObjectType fn="reverse-forward-server"

関連項目:
reverse-block-server

5.5.37 set-basic-auth

set-basic-auth関数により、サーバーがHTTPリクエストを送信する際に使用するHTTP Basic認証資格証明を設定できます。set-basic-authを使用して、リモート・オリジン・サーバーまたはプロキシ・サーバーに対して認証します。

次の表に、set-basic-auth関数のパラメータを示します。

表5-31 set-basic-authのパラメータ

パラメータ

説明

user

認証するユーザーの名前。

password

認証するユーザーのパスワード。

hdr

(オプション)資格証明を伝達するために使用するHTTPリクエスト・ヘッダーの名前。

bucket

(オプション)すべてのobj.confの関数に共通です。パフォーマンスを監視するバケットを追加します。詳細は、「bucketパラメータ」を参照してください。

例

ObjectType fn="set-basic-auth" user="admin" password="secret" hdr="proxy-authorization"

5.5.38 set-cache-control

set-cache-control関数では、クライアントに戻されるレスポンスのHTTPキャッシュ・ポリシーを指定できます。

次の表に、set-cache-control関数のパラメータを示します。

表5-32 set-cache-controlのパラメータ

パラメータ

説明

control

HTTPキャッシュ制御ディレクティブ。複数のディレクティブはカンマで区切ります。

次の表に、HTTP/1.1プロトコルで定義されている有益なキャッシュ制御ディレクティブの一部を示します。

表5-33 キャッシュ制御ディレクティブ

ディレクティブ

説明

public

レスポンスは、任意のキャッシュによってキャッシュされます。

private

レスポンスは、共有キャッシュ(プロキシ・サーバーなど)にはキャッシュされません。

no-cache

クライアントは、アクセスごとに更新されたコンテンツの存在をOracle Traffic Directorに確認する必要があります。

max-age=n

レスポンスは、n秒を超えてはキャッシュされません。

例

ObjectType fn="set-cache-control" control="private,max-age=60"

5.5.39 set-cookie

set-cookie関数では、クライアントに戻されるレスポンスにCookieを設定できます。

次の表に、set-cookie関数のパラメータを示します。

表5-34 set-cookieのパラメータ

パラメータ

説明

name

Cookieの名前。

value

(オプション) Cookieの値。デフォルト値: null。

path

(オプション) Cookieを適用するベースURI。デフォルト値: / (スラッシュ)。

domain

(オプション) Cookieを送信する必要のあるサーバーのドメイン名。ドメインを指定しない場合、Webブラウザは、Cookieを設定するOracle Traffic DirectorにのみCookieを送信します。

max-age

(オプション) Cookieが期限切れになるまでの最大時間(秒単位)。max-ageを指定しない場合、Webブラウザでは、ユーザーがWebブラウザを閉じるとCookieも削除されます。

例

<If not defined $cookie{'FIRSTVISITTIME'}>
ObjectType fn="set-cookie"
name="FIRSTVISITTIME"
value="$time"
max-age="31536000"
</If>

5.5.40 type-by-exp

type-by-exp関数は、現在のパスとワイルドカード式を照合します。一致する場合、typeパラメータの情報がファイルに適用されます。これは、URLに指定されたファイルまたはディレクトリに対してワイルドカード・パターンを使用することを除けば、type-by-extensionと同じです。

表5-35に、type-by-exp関数のパラメータを示します。

表5-35 type-by-expのパラメータ

パラメータ

説明

exp

この関数を適用するパスのワイルドカード・パターン。

type

(オプション)一致するリクエストに割り当てるタイプ(Content-Typeヘッダー)。

enc

(オプション)一致するリクエストに割り当てるエンコーディング(Content-Encodingヘッダー)。

lang

(オプション)一致するリクエストに割り当てる言語(Content-Languageヘッダー)。

charset

(オプション) rq->srvhdrsのmagnus-charsetパラメータの文字セット。ブラウザがAccept-Charsetヘッダーを送信する場合、またはそのUser-AgentがMozilla/1.1以上の場合、"; charset=charset"をContent-Typeに追加します(charsetはrq->srvhdrsのmagnus-charsetパラメータの値です)。

例

ObjectType fn="type-by-exp" exp="*.test" type="application/html"

関連項目:
type-by-extension

5.5.41 type-by-extension

type-by-extension関数は、Oracle Traffic Directorに対し、MIMEタイプ・マッピングの表を検索して、リクエストされたリソースのMIMEタイプを検出するように指示します。MIMEタイプは、クライアントに戻されるContent-Typeヘッダーに追加されます。

MIMEタイプ・マッピングの表は、MIMEタイプのファイルまたはリストをロードしてマッピングを作成するserver.xmlファイルのmime-file要素によって作成されます。

たとえば、次の2つの行は、MIMEタイプ・ファイルの一部です。

type=text/html exts=htm,html
type=text/plain exts=txt

リクエストされたリソースの拡張子がhtmまたはhtmlの場合、type-by-extensionファイルは、そのタイプをtext/htmlに設定します。拡張子が.txtの場合、関数はそのタイプをtext/plainに設定します。

例

ObjectType fn="type-by-extension"

関連項目:
type-by-exp

5.6 Input

Inputディレクティブでは、Serviceステージで読み取られる着信リクエスト・データを処理するフィルタを選択できます。詳細は、「Input」を参照してください。

Inputディレクティブでは、次の共通SAFも有効です。

- insert-filter

- match-browser

- remove-filter

- sed-param-name

- sed-param-value

- set-variable

どのInputディレクティブにも次のオプション・パラメータがあります。

表5-36 Inputディレクティブのオプション・パラメータ

パラメータ

説明

type

(オプション)この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。

method

(オプション)この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。一般的なHTTPメソッドは、GET、HEADおよびPOSTです。

query

(オプション)この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。

5.7 Output

Outputステージでは、発信データを処理するフィルタを選択できます。詳細は、「Output」を参照してください。

どのOutputディレクティブにも次のオプション・パラメータがあります。

表5-37 Outputディレクティブのオプション・パラメータ

パラメータ

説明

type

(オプション)この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。

method

(オプション)この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。一般的なHTTPメソッドは、GET、HEADおよびPOSTです。

query

(オプション)この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。

Outputディレクティブでは、次の共通SAFも有効です。

- insert-filter

- match-browser

- redirect

- remove-filter

- restart

- sed-param-name

- sed-param-value

- sed-response-header

- set-variable

5.8 Route

Routeディレクティブは、Webサーバーによるリクエストのルーティング場所に関する情報を指定します。詳細は、「Route」を参照してください。

この項では、次のRouteクラスの関数について詳細に説明します。

- set-origin-server

- set-proxy-server

また、Routeディレクティブでは、次の共通SAFも有効です。

- match-browser

- sed-param-name

- sed-param-value

- set-variable

5.8.1 set-origin-server

set-origin-server関数は、同機種のHTTPオリジン・サーバーのセット全体に負荷を分散します。このSAFは、このリクエストの指定オリジン・サーバー・プールからオリジン・サーバーを選択します。set-origin-server SAFには、必須パラメータとしてorigin-server-poolが必要です。

表5-38に、set-origin-server関数のパラメータを示します。

表5-38 set-origin-serverのパラメータ

パラメータ

説明

origin-server-pool

(必須)構成済のオリジン・サーバー・プールの名前。このプールから、server.xmlのorigin-server-pool要素内で定義されたロード・バランシング・パラメータに基づいて、いずれかのオリジン・サーバーが選択されます。

sticky-cookie

(オプション)レスポンスに存在する場合に、後続のリクエストを特定のオリジン・サーバーに固定するCookieの名前。これに基づいて、このCookieを持つ後続のリクエストは同じオリジン・サーバーに送信されます。

このパラメータには値として*を使用できます。これは、オリジン・サーバーから受信するCookieはすべてスティッキとみなされることを意味します。デフォルト値: *。

sticky-param

(オプション)ルート情報を検査するURIパラメータの名前。URIパラメータがリクエストURIに存在し、その値にコロン(:)が含まれ、その後にルートIDが続く場合、そのルートIDによって識別されるオリジン・サーバーにリクエストが固定されます。デフォルト値: jsessionid。

route-hdr

(オプション)ルートIDをオリジン・サーバーに伝達するために使用されるHTTPリクエスト・ヘッダーの名前。set-origin-serverは、サーバー・パラメータで指定された各オリジン・サーバーを一意のルートIDに関連付けます。オリジン・サーバーは、sticky-paramパラメータで指定されたURIパラメータのこのルートIDをエンコードして、後続のリクエストを固定できます。デフォルト値: Proxy-jroute。

route-cookie

(オプション)レスポンスにsticky-cookieが含まれる場合にOracle Traffic Directorによって生成されるCookieの名前。route-cookieパラメータには、Oracle Traffic Directorが後続のリクエストを同じオリジン・サーバーに戻すことを可能にするルートIDが格納されます。デフォルト値: JROUTE。

rewrite-host

(オプション)ホストHTTPリクエスト・ヘッダーを、serverパラメータで指定されたホストに一致するようにリライトするかどうかを示します。デフォルト値: false。これは、ホスト・ヘッダーをリライトしないことを示します。

rewrite-location

(オプション) serverパラメータに一致するLocation HTTPレスポンス・ヘッダーをリライトするかどうかを示します。デフォルト値: true。これは、一致するLocationヘッダーをリライトすることを示します。

rewrite-content-location

(オプション) Oracle Traffic Directorパラメータに一致するContent-Location HTTPレスポンス・ヘッダーをリライトするかどうかを示します。デフォルト値: true。これは、一致するContent-Locationヘッダーをリライトすることを示します。

rewrite-headername

(オプション) Oracle Traffic Directorパラメータに一致するheadername HTTPレスポンス・ヘッダーをリライトするかどうかを示します。headernameは、ユーザー定義のヘッダー名です。headernameは小文字です。LocationおよびContent-Locationヘッダーは例外です。デフォルト値: false。これは、headernameヘッダーをリライトしないことを示します。

例

Route fn="set-origin-server" origin-server-pool="origin-server-pool-1"

関連項目:
「map」、「set-proxy-server」

5.8.2 set-proxy-server

set-proxy-server関数は、Oracle Traffic Directorに対し、特定のプロキシ・サーバーから現在のリソースを取得するように指示します。

表5-39に、set-proxy-server関数のパラメータを示します。

表5-39 set-proxy-serverのパラメータ

パラメータ

説明

server

リモート・プロキシ・サーバーのURL。複数のサーバー・パラメータを指定すると、Oracle Traffic Directorは、指定したリモート・サーバー全体に負荷を分散します。

例

Route fn="set-proxy-server"
server="http://webcache1.eng.sun.com:8080"
server="http://webcache2.eng.sun.com:8080"

関連項目:
set-origin-server

5.9 Service

Serviceディレクティブは、クライアントにレスポンス・データを送信します。詳細は、「Service」を参照してください。

どのServiceディレクティブにも、関数を実行するかどうかを決定するための次のオプション・パラメータがあります。関数を実行するには、すべてのオプション・パラメータが現在のリクエストに一致する必要があります。

表5-40 Serviceディレクティブのオプション・パラメータ

オプション・パラメータ

説明

type

この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。magnus-internal/* MIMEタイプは、実行するService関数を選択する場合にのみ使用されます。

method

この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。一般的なHTTPメソッドは、GET、HEADおよびPOSTです。

query

この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。

UseOutputStreamSize

クライアントにデータを送信するための、デフォルトの出力ストリーム・バッファ・サイズ(バイト単位)を決定します。このパラメータを指定しない場合、デフォルトは8192バイトです。

注意: このパラメータをゼロ(0)に設定すると、出力ストリーム・バッファリングが無効になります。

flushTimer

バッファリングを有効にする書込み操作間の最大ミリ秒数を決定します。後続の書込み操作間の間隔がアプリケーションのflushTimer値を超えると、その後のバッファリングは無効になります。これは、継続的に実行され、ステータス更新レポートを定期的に生成するCGIアプリケーションのステータスを監視する場合に必要です。このパラメータを指定しない場合、デフォルトは3000ミリ秒です。

ChunkedRequestBufferSize

リクエスト・データのチャンクを解除するためのデフォルトのバッファ・サイズ(バイト単位)を決定します。このパラメータを指定しない場合、デフォルトは8192バイトです。

ChunkedRequestTimeout

リクエスト・データのチャンクを解除するためのデフォルトのタイムアウト(秒単位)を決定します。このパラメータを指定しない場合、デフォルトは60秒です。

Serviceクラスの関数が複数ある場合、オプションのワイルドカード・パラメータ(type、methodおよびquery)に一致する最初の関数が実行されます。

UseOutputStreamSize、ChunkedRequestBufferSizeおよびChunkedRequestTimeoutパラメータにも、同等のmagnus.confディレクティブがあります。obj.confパラメータは、magnus.confディレクティブをオーバーライドします。

デフォルトで、Oracle Traffic Directorは、send-file関数をコールして、リクエストされたファイルをクライアントに送信します。デフォルトを設定するディレクティブは次のとおりです。

Service method="(GET|HEAD)" type="*~magnus-internal/*" fn="send-file"

このディレクティブは、通常、他のすべてのServiceディレクティブに起動の機会を与えるため、Serviceクラスのディレクティブ・セット内の最後に配置されます。このディレクティブは、リクエストのメソッドがGET、HEADまたはPOSTで、タイプがmagnus-internal/で始まらない場合に起動されます。パターン*~は、不一致を意味することに注意してください。パターンで使用できる文字のリストは、「ワイルドカード・パターン」を参照してください。

次の項では、Serviceディレクティブで使用される関数について説明します。

- proxy-retrieve

- remove-filter

- service-proxy-cache-dump

- service-trace

- stats-xml

また、Serviceディレクティブでは、次の共通SAFも有効です。

- match-browser

- remove-filter

- sed-param-name

- sed-param-value

- set-variable

5.9.1 proxy-retrieve

proxy-retrieve関数は、リモート・サーバーからドキュメントを取得してクライアントに返します。この関数では、任意のメソッドを許可またはブロックするようにOracle Traffic Directorを構成することもできます。この関数は、HTTPプロトコルでのみ動作します。

表5-41に、proxy-retrieve関数のパラメータを示します。

表5-41 proxy-retrieveのパラメータ

パラメータ

説明

type

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

method

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

query

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

UseOutputStreamSize

(オプション)すべてのServiceクラスの関数に共通です。クライアントにデータを送信するための、デフォルトの出力ストリーム・バッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

flushTimer

(オプション)すべてのServiceクラスの関数に共通です。バッファリングを有効にする書込み操作間の最大ミリ秒数を決定します。詳細は、「Service」を参照してください。

ChunkedRequestBufferSize

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのバッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

ChunkedRequestTimeout

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのタイムアウト(秒単位)を決定します。詳細は、「Service」を参照してください。

例

# Normal proxy retrieve
Service fn="proxy-retrieve"
# Proxy retrieve with POST method disabled
Service fn="proxy-retrieve"
method="(POST)"

関連項目:
「set-origin-server」、「set-proxy-server」

5.9.2 remove-filter

remove-filter関数は、フィルタ・スタックからフィルタを削除するために使用します。フィルタを複数回挿入すると、最上位のインスタンスのみが削除されます。一般的に、フィルタはリクエストの最後に自動的に削除されるため、remove-filterを使用して削除する必要はありません。

次の表に、remove-filter関数のパラメータを示します。

表5-42 remove-filterのパラメータ

パラメータ

説明

type

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

method

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

query

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

UseOutputStreamSize

(オプション)すべてのServiceクラスの関数に共通です。クライアントにデータを送信するための、デフォルトの出力ストリーム・バッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

flushTimer

(オプション)すべてのServiceクラスの関数に共通です。バッファリングを有効にする書込み操作間の最大ミリ秒数を決定します。詳細は、「Service」を参照してください。

ChunkedRequestBufferSize

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのバッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

ChunkedRequestTimeout

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのタイムアウト(秒単位)を決定します。詳細は、「Service」を参照してください。

例

Service fn="remove-filter"

5.9.3 service-proxy-cache-dump

service-proxy-cache-dump関数は、現在のリバース・プロキシのキャッシュ統計をダンプします。

表5-43に、service-proxy-cache-dump関数のパラメータを示します。

表5-43 service-proxy-cache-dumpのパラメータ

パラメータ

説明

list

キャッシュのオブジェクトをリストします。

キャッシュのリストには、URI、フラグのセット、キャッシュ・エントリに対する現在の参照数、およびエントリのサイズが含まれます。

refresh=n

このパラメータの値をnに設定すると、クライアントはn秒ごとにページを再ロードします。

restart

キャッシュを停止して再起動します。

start

キャッシュを起動します。

stop

キャッシュを停止します。

例

<Object name="default"
NameTrans fn=assign-name name="proxy-cache" from="/.proxycache"
</Object>
<Object name="proxy-cache">
Service fn="service-proxy-cache-dump"
</Object>

関連項目:
「proxy-cache-config」、「proxy-cache-override-http」

5.9.4 service-trace

service-trace関数は、TRACEリクエストにサービスを提供します。TRACEリクエストは、WebクライアントとWebサーバー間に存在するWebプロキシの問題を診断するために使用します。

表5-44に、service-trace関数のパラメータを示します。

表5-44 service-traceのパラメータ

パラメータ

説明

type

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

method

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

query

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

UseOutputStreamSize

(オプション)すべてのServiceクラスの関数に共通です。クライアントにデータを送信するための、デフォルトの出力ストリーム・バッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

flushTimer

(オプション)すべてのServiceクラスの関数に共通です。バッファリングを有効にする書込み操作間の最大ミリ秒数を決定します。詳細は、「Service」を参照してください。

ChunkedRequestBufferSize

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのバッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

ChunkedRequestTimeout

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのタイムアウト(秒単位)を決定します。詳細は、「Service」を参照してください。

例

<Object name="default">
...
Service method="TRACE" fn="service-trace"
...
</Object>

5.9.5 stats-xml

stats-xml関数は、XML形式でパフォーマンス・レポートを作成します。パフォーマンス・バケットが定義されている場合、このパフォーマンス・レポートにそれらが含まれます。

レポートが生成される場所は次のとおりです。

http://server_id:portURI

次に例を示します。

http://example.com:80/stats-xml

次の表に、stats-xml関数のパラメータを示します。

表5-45 stats-xmlのパラメータ

パラメータ

説明

type

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

method

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

query

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

UseOutputStreamSize

(オプション)すべてのServiceクラスの関数に共通です。クライアントにデータを送信するための、デフォルトの出力ストリーム・バッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

flushTimer

(オプション)すべてのServiceクラスの関数に共通です。バッファリングを有効にする書込み操作間の最大ミリ秒数を決定します。詳細は、「Service」を参照してください。

ChunkedRequestBufferSize

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのバッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

ChunkedRequestTimeout

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのタイムアウト(秒単位)を決定します。詳細は、「Service」を参照してください。

例

<Object name="default">
<If uri = "/stats-xml/*">
Service fn="stats-xml"
</If>
...
</Object>

5.10 AddLog

AddLogディレクティブは、トランザクションに関する情報を記録するために実行されます。詳細は、「AddLog」を参照してください。

この項では、次のAddLogクラスの関数について詳細に説明します。

- flex-log

また、AddLogディレクティブでは、次の共通SAFも有効です。

- match-browser

- sed-param-name

- sed-param-value

- set-variable

5.10.1 flex-log

flex-log関数は、フレキシブル・ログ形式でリクエスト固有のデータを記録します。これは、共通ログ形式でリクエストを記録することもできます。Webサーバーの/binディレクトリにログ・アナライザ(flexanlg)が存在します。共通ログ形式の場合、無償の統計ジェネレータも多くあります。

server.xmlのaccess-log要素のformatサブ要素を使用してログ形式を指定します。詳細は、「access-log」を参照してください。ログ形式の詳細は、「カスタム・アクセス・ログ・ファイル形式の使用」を参照してください。

表5-46に、flex-log関数のパラメータを示します。

表5-46 flex-logのパラメータ

パラメータ

説明

name

(オプション)ログ・ファイルの名前を指定します。名前は、server.xmlのaccess-log要素で事前に定義されている必要があります。名前を指定しない場合、エントリはデフォルト・ログ・ファイルに記録されます。

iponly

(オプション) Oracle Traffic Directorに対し、DNS名を参照して記録するのではなく、リモート・クライアントのIPアドレスを記録するように指示します。これによって、DNSが無効の場合のパフォーマンスが向上します。iponlyの値は、存在するだけで意味はありません。iponly=1を使用できます。

例

# Log all accesses to the default log file
AddLog fn="flex-log"
# Log accesses from outside our subnet (198.93.5.*) to
# nonlocallog
<Client ip="*~198.93.5.*">
AddLog fn="flex-log" name="nonlocallog"
</Client>

5.11 Error

SAFでエラーが発生した場合、Oracle Traffic Directorは、他のすべてのディレクティブの実行を停止して、即座にErrorディレクティブの実行を開始します。詳細は、「Error」を参照してください。

この項では、次のErrorクラスの関数について詳細に説明します。

- qos-error

- send-error

また、Errorディレクティブでは、次の共通SAFも有効です。

- match-browser

- redirect

- remove-filter

- restart

- sed-param-name

- sed-param-value

- set-variable

5.11.1 qos-error

qos-error関数は、エラーを引き起こしたサービス品質とQoS統計の値を示したエラー・ページを返します。

表5-47に、qos-error関数のパラメータを示します。

表5-47 qos-errorのパラメータ

パラメータ

説明

code

(オプション) HTTPレスポンス・ステータス・コードを表す3桁の数字(401や407など)。推奨値は503です。

HTTP仕様に準拠した任意のHTTPレスポンス・ステータス・コードまたは理由フレーズを使用できます。

一般的なHTTPレスポンス・ステータス・コードおよび理由文字列のリストは、次のとおりです。

- 401 Unauthorized

- 403 Forbidden

- 404 Not Found

- 500 Server Error

例

Error fn="qos-error" code="503"

注意:
qos-handler

5.11.2 send-error

send-error関数は、特定のHTTPレスポンス・ステータスのかわりにクライアントにHTMLファイルを送信します。これによりサーバーは、問題を説明するメッセージを表示できます。HTMLページには、イメージおよびサーバーのホーム・ページまたはその他のページへのリンクが含まれます。

表5-48に、send-error関数のパラメータを示します。

表5-48 send-errorのパラメータ

パラメータ

説明

path

クライアントに送信するHTMLファイルの絶対パスを指定します。ファイルが存在しないかアクセス不可である場合、サーバーにより404または403エラー・ページが返されます。ファイルは、名前または実際のタイプに関係なくtext/htmlとして送信されます。

code

(オプション) HTTPレスポンス・ステータス・コードを表す3桁の数字(401や407など)。

HTTP仕様に準拠した任意のHTTPレスポンス・ステータス・コードまたは理由フレーズを使用できます。

一般的なHTTPレスポンス・ステータス・コードおよび理由文字列のリストは、次のとおりです。

- 401 Unauthorized

- 403 Forbidden

- 404 Not Found

- 500 Server Error

type

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

method

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

query

(オプション)すべてのServiceクラスの関数に共通です。この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。詳細は、「Service」を参照してください。

bucket

(オプション)すべてのobj.confの関数に共通です。パフォーマンスを監視するバケットを追加します。詳細は、「bucketパラメータ」を参照してください。

例

Error fn="send-error" code="401" path="/opt/oracle/webserver7/docs/errors/401.html"

5.12 共通SAF

この項では、複数のディレクティブに共通なSAFをリストします。

表5-49 共通SAF

サーバー・アプリケーション関数

ディレクティブ

insert-filter

- Input

- Output

match-browser

- AuthTrans

- NameTrans

- PathCheck

- ObjectType

- Input

- Output

- Route

- Service

- AddLog

- Error

redirect

- NameTrans

- Output

- Error

remove-filter

- Input

- Output

- Service

- Error

restart

- NameTrans

sed-param-name

- AuthTrans

- NameTrans

- PathCheck

- ObjectType

- Input

- Output

- Route

- Service

- AddLog

- Error

sed-param-value

- AuthTrans

- NameTrans

- PathCheck

- ObjectType

- Input

- Output

- Route

- Service

- AddLog

- Error

set-variable

- AuthTrans

- NameTrans

- PathCheck

- ObjectType

- Input

- Output

- Route

- Service

- AddLog

- Error

5.12.1 insert-filter

insert-filter SAFは、クライアントからサーバーに着信するデータを処理するフィルタ・スタックにフィルタを追加するために使用します。Input fn="insert-filter"ディレクティブとOutput fn="insert-filter"ディレクティブの順序は重要です。

戻り値

指定されたフィルタの挿入に成功した場合はREQ_PROCEEDを返し、指定されたフィルタが不要なために挿入されなかった場合はREQ_NOACTIONを返します。他のすべての戻り値はエラーを示します。

パラメータ

次の表に、insert-filter関数のパラメータを示します。

表5-50 insert-filterのパラメータ

パラメータ

説明

filter

挿入するフィルタの名前を指定します。事前定義フィルタの詳細は、「Input」および「Output」を参照してください。

type

(オプション) InputクラスおよびOutputクラスのすべての関数に共通です。この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。

method

(オプション) InputクラスおよびOutputクラスのすべての関数に共通です。この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。一般的なHTTPメソッドは、GET、HEADおよびPOSTです。

query

(オプション) InputクラスおよびOutputクラスのすべての関数に共通です。この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。

5.12.1.1 例

Input fn="insert-filter" filter="http-decompression"

このディレクティブは、insert-filter関数に対し、カスタム・フィルタのhttp-decompressionをフィルタ・スタックに追加するように指示しています。http-decompressionフィルタは、着信HTTPリクエスト・データがサービス・ステージに移行する前に解凍します。事前定義フィルタの詳細は、「Input」および「Output」を参照してください。

5.12.2 match-browser

match-browser関数は、ブラウザから提供されるUser-Agent文字列の特定の文字列に一致します。その後、指定された変数の値を設定した結果に基づいてOracle Traffic Directorの動作を変更します。この関数は、すべてのディレクティブで使用できます。

構文

stage fn="match-browser" browser="string" name="value" [name="value" ]

パラメータ

次の表に、match-browser関数のパラメータ値を示します。

表5-51 match-browserのパラメータ

値

説明

stage

obj.confの処理で使用されるステージ・ディレクティブ。match-browser関数は、すべてのステージ・ディレクティブで使用できます。

string

User-Agentヘッダーと比較するワイルドカード・パターン("*Mozilla*"など)。

name

変更する変数。match-browser関数は、間接的にset-variable関数を起動します。

value

指定した変数の新しい値。

例

AuthTrans fn="match-browser"
browser="*[Bb]roken*"
ssl-unclean-shutdown="true"
keep-alive="disabled"
http-downgrade="1.0"

ブラウザのUser-Agentヘッダーに文字列Brokenまたはbrokenが含まれる場合、前述のAuthTransディレクティブは、Oracle Traffic Directorに次のことを指示します。

- SSL3およびTLSのclose_notifyパケットを送信しないこと

- HTTPキープ・アライブに対するリクエストを受け入れないこと

- HTTP/1.1ではなくHTTP/1.0プロトコルを使用すること

この例で使用されているssl-unclean-shutdownなどの変数の詳細は、「set-variable」を参照してください。

関連項目:
set-variable

5.12.3 redirect

redirect関数では、URLを変更して、更新されたURLをクライアントに送信できます。クライアントが古いパスを使用してサーバーにアクセスすると、Oracle Traffic Directorは、そのリクエストを新規URLに対するリクエストとして処理します。

redirect関数は、クライアントのリダイレクト先のURLを検査します。URLがクライアントのリクエストしたURLと一致している場合(同じスキーム、ホスト名、ポートおよびパス)、この関数は、リダイレクトを実行せず、かわりにREQ_NOACTIONを返します。

表5-52に、redirect関数のパラメータを示します。

表5-52 redirectのパラメータ

パラメータ

説明

from

(オプション)一致させるリクエストURIの接頭辞を指定します。fromを指定しない場合、デフォルトで""に設定されます。

url

(オプション)クライアントに返す完全なURLを指定します。このパラメータを使用する場合、url-prefixは使用しないでください。

url-prefix

(オプション)クライアントに返す新しいURL接頭辞。from接頭辞は、このURL接頭辞で置き換えられます。このパラメータを使用する場合、urlは使用しないでください。

escape

(オプション) urlまたはurl-prefixパラメータの値をエスケープする必要があるかどうかを示します。デフォルトはyesであり、Oracle Traffic Directorで値をエスケープすることを示します。値noは、URLまたはURL接頭辞の値がすでにエスケープされていることを示します。エスケープされた値の例として、%文字が%25で、空白が%20で置き換えられている場合があります。

status

(オプション) HTTPステータス・コードをカスタマイズします。statusを指定しない場合、デフォルトで302に設定されます。

type

(オプション)すべてのOutputクラスの関数に共通です。この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。

method

(オプション)すべてのOutputクラスの関数に共通です。この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。一般的なHTTPメソッドは、GET、HEADおよびPOSTです。

query

(オプション)すべてのOutputクラスの関数に共通です。この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。

例

最初の例では、http://server-name/whateverに対するリクエストは、すべてhttp://tmpserver/whateverに対するリクエストに変換されます。

NameTrans fn="redirect" from="/" url-prefix="http://tmpserver/"

2番目の例では、http://server-name/toopopular/whateverに対するリクエストは、http://bigger/better/stronger/morepopular/に対するリクエストに変換されます。

NameTrans fn="redirect" from="/toopopular"
url="http://bigger/better/stronger/morepopular"

関連項目:
restart

5.12.4 remove-filter

remove-filter SAFは、フィルタ・スタックからフィルタを削除するために使用します。フィルタを複数回挿入すると、最上位のインスタンスのみが削除されます。一般的に、フィルタはリクエストの最後に自動的に削除されるため、remove-filterを使用して削除する必要はありません。

戻り値

指定されたフィルタの削除に成功した場合はREQ_PROCEEDを返し、指定されたフィルタがフィルタ・スタックの一部でなかった場合はREQ_NOACTIONを返します。他のすべての戻り値はエラーを示します。

パラメータ

次の表に、remove-filter関数のパラメータを示します。

表5-53 remove-filterのパラメータ

パラメータ

説明

filter

削除するフィルタの名前を指定します。

type

(オプション) Inputクラス、OutputクラスおよびServiceクラスのすべての関数に共通です。この関数を実行するMIMEタイプのワイルドカード・パターンを指定します。magnus-internal/* MIMEタイプは、実行するService関数を選択する場合にのみ使用されます。

method

(オプション) Inputクラス、OutputクラスおよびServiceクラスのすべての関数に共通です。この関数を実行するHTTPメソッドのワイルドカード・パターンを指定します。一般的なHTTPメソッドは、GET、HEADおよびPOSTです。

query

(オプション) Inputクラス、OutputクラスおよびServiceクラスのすべての関数に共通です。この関数を実行する問合せ文字列のワイルドカード・パターンを指定します。

UseOutputStreamSize

(オプション)すべてのServiceクラスの関数に共通です。クライアントにデータを送信するための、デフォルトの出力ストリーム・バッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

flushTimer

(オプション)すべてのServiceクラスの関数に共通です。バッファリングを有効にする書込み操作間の最大ミリ秒数を決定します。詳細は、「Service」を参照してください。

ChunkedRequestBufferSize

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのバッファ・サイズ(バイト単位)を決定します。詳細は、「Service」を参照してください。

ChunkedRequestTimeout

(オプション)すべてのServiceクラスの関数に共通です。リクエスト・データのチャンクを解除するためのデフォルトのタイムアウト(秒単位)を決定します。詳細は、「Service」を参照してください。

5.12.4.1 例

Input fn="remove-filter" filter="http-compression"

5.12.5 restart

restart関数では、HTTPリダイレクトをクライアントに送信することなく、Oracle Traffic Director内でURLリライティングを実行できます。restart関数は、rq->reqpbのuriおよびqueryの値を、uriパラメータで指定されたURIと問合せ文字列に置き換え、REQ_RESTARTを返してリクエストを再起動します。

uriパラメータに?文字が含まれる場合、?に続く値が問合せ文字列として使用されます。それ以外の場合、再起動されたリクエストに問合せ文字列は含まれません。新しいリクエストURIは、再度AuthTransステージとNameTransステージで処理されるため、無限ループを作成することは避けてください。

次の表に、restart関数のパラメータを示します。

表5-54 restartのパラメータ

パラメータ

説明

from

(オプション)再起動するリクエストのパスを指定するワイルドカード・パターン。デフォルトではすべてのパスに一致します。

uri

再起動するリクエストで使用するURIおよび問合せ文字列。

例

次のobj.confのコードは、Oracle Traffic Directorに、/index.htmlに対するリクエストを/index.jspに対するリクエストと同様に処理するように指示します。

NameTrans fn="restart" from="/index.html" uri="/index.jsp"

5.12.6 rewrite-cookie

rewrite-cookie機能により、バック・エンド・サーバーにから返されるCookieの変更が可能です。

次の表に、rewrite-cookie関数のパラメータを示します。

表5-55 restartのパラメータ

パラメータ

データ型

説明

name

Boolean

返信Cookie名を指定します

secure

Boolean

"secure"属性を、"name"で指定されたレスポンスCookieに追加または削除する必要があるかどうか指定します。

httponly

Boolean

"HttpOnly"パラメータを、"name"で指定されたレスポンスCookieに追加または削除する必要があるかどうか指定します。

passthrough

Boolean

"name"で指定されたレスポンスCookieの"path"属性を、上書きする必要があるかどうか指定します。

5.12.7 sed-param-name

sed-param-name関数は、指定されたpblockパラメータ名を、指定されたsed式に基づいて変更します。

次の表に、sed-param-name関数のパラメータを示します。

表5-56 sed-param-nameのパラメータ

パラメータ

説明

name

パラメータ名を指定します

sed

指定した変数のsed式の値を指定します。

pblock

pblock名を指定します。

例

次のようにして、"Content-length: 123"を"Content-Length: 123"に変換します
NameTrans fn="sed-param-name" pblock="headers" name="content-length" sed="s/-length/-Length/g"

5.12.8 sed-param-value

sed-param-value関数は、指定されたpblockパラメータ値を、指定されたsed式に基づいて変更します。

次の表に、sed-param-value関数のパラメータを示します。

表5-57 sed-param-valueのパラメータ

パラメータ

説明

name

値を変更するパラメータ名を指定します

sed

指定した変数のsed式の値を指定します。

pblock

pblock名を指定します。

例

次のようにして、任意のpblockパラメータ値(指定された名前に対応)をリライトします
NameTrans fn="sed-param-value" pblock="reqpb" name="uri" sed="s/test/plan/g"

5.12.9 sed-response-header

sed-response-headerは、レスポンス・ヘッダーをリライトし、"name"および"sed"の2つのパラメータが必要です。

戻り値

エラーが発生した場合はREQ_ABORTEDを返し、指定されたフィルタが不要なために挿入されなかった場合はREQ_NOACTIONを返します。

パラメータ

次の表に、sed-response-header関数のパラメータ値を示します。

表5-58 sed-response-headerのパラメータ

値

説明

name

指定された変数のヘッダー名。

sed

指定した変数のsed式の値。

例

次のようにして、指定したレスポンス・ヘッダーの値をリライトします。
Output fn="sed-response-header" name="server" sed="s/backend/frontend/g"

5.12.10 set-priority

set-priority関数は、優先順位(HIGH、NORMALまたはLOW)をその他のSAFおよび後でコールされるフィルタ(check-req-limit, set-origin-serverなど、および帯域幅フィルタ)に設定します。

set-priorityが使用されない場合、リクエストはデフォルトの優先順位、NORMALで実行されます。

優先順位の値は、HIGHは2、NORMALは1およびLOWは0で、rq->varsに格納されます。

access-log形式を、たとえば、%Req->vars.priority%のように変更して、優先順位を含めることができます。

次の表に、set-priority関数のパラメータを示します。

表5-59 restartのパラメータ

値

説明

priority

サポートされる優先順位の値は次のとおりです。

- "HIGH" - LOWおよびNORMAL優先順位のリクエストよりも先に処理される可能性が高いリクエストです

- "NORMAL" - LOW優先順位のリクエストよりも先に処理される可能性が高いリクエストです

- "LOW" - HIGHおよびNORMAL優先順位のリクエストよりも先に処理される可能性が低いリクエストです

優先順位値では大/小文字が区別されます。

uri

再起動するリクエストで使用するURIおよび問合せ文字列。

例

次のobj.confコードは、URIの値に基づいてリクエストの優先順位を設定し、'/index.html'にHIGH、および'foo.html'.にLOWを設定します。

<Object name="default">AuthTrans fn="match-browser" browser="*MSIE*" ssl-unclean-shutdown="true"

<If $uri eq '/index.html'>AuthTrans fn="set-priority" priority="HIGH"</If>

<If $uri eq '/foo.html'>AuthTrans fn="set-priority" priority="LOW"</If>
......Service fn="proxy-retrieve" method="*"AddLog fn="flex-log"</Object>

5.12.11 set-variable

set-variable関数では、リクエストの条件情報に基づいてOracle Traffic Directorの設定を変更できます。この関数は、すべてのディレクティブで使用できます。

これを使用して、次のコマンドによってパラメータ・ブロックの変数を操作することもできます。

- insert-pblock="name=value"
指定されたpblockに新しい値を追加します。

- set-pblock="name=value"
指定されたpblockに新しい値を設定し、既存の値を同じ名前で置き換えます。

- remove-pblock="name"
指定されたpblockから特定の名前を持つすべての値を削除します。

set-variable関数は、多くの事前定義変数をパラメータとして認識します。また、set-variableのパラメータ名が$で始まるが事前定義変数の名前ではない場合、パラメータとその値はrq->vars pblockに格納されます。この機能により、リクエスト時に$variableの値を定義またはオーバーライドできます。

set-variableは、$variable形式と${variable}形式の両方を受け入れますが、rq->vars pblockに格納されたパラメータの名前は、常に$variable形式になります。

構文

stage fn="set-variable" [{insert|set|remove}-pblock="name=value" ...][name="value" ]

パラメータ

次の表に、set-variable関数のパラメータ値を示します。

表5-60 set-variableのパラメータ

値

説明

pblock

次のセッションまたはリクエスト・パラメータ・ブロック名のいずれかを指定します。

- client: クライアント・マシンのIPアドレスとリモート・マシンのDNS名を含みます。

- vars: サーバーの作業変数(reqpb、headersまたはsrvhdrs pblockに特に出現しないものなど)を含みます。このpblockの内容は、特定のリクエストおよびSAFのタイプに応じて異なります。

- reqpb: HTTPリクエストの要素(GETやPOSTなどのHTTPメソッド、URI、プロトコル(通常はHTTP/1.0)、問合せ文字列など)を含みます。このpblockは、リクエスト/レスポンス・プロセス中は変更されません。

- headers: HTTPリクエストでクライアントから受信されたすべてのリクエスト・ヘッダー(User-AgentやIf-Modified-Sinceなど)を含みます。このpblockは、リクエスト/レスポンス・プロセス中は変更されません。

- srvhdrs: HTTPレスポンスでクライアントに送信されるレスポンス・ヘッダー(Server、Date、Content-Type、Content-lengthなど)を含みます。

name

設定する変数。

value

nameで指定した変数に割り当てる文字列。

変数

次の表に、set-variable SAFでサポートされる変数をリストします。

表5-61 サポートされる変数

変数

説明

abort

trueの値は、結果コードをREQ_ABORTEDに設定することを示します。結果コードをREQ_ABORTEDに設定すると、現在のリクエストは中断され、ブラウザにエラーが送信されます。結果コードの詳細は、『Oracle Traffic Director管理者ガイド』のカスタム・サーバー・アプリケーション関数の作成に関する項を参照してください。

error

HTTPステータス・コードを設定し、REQ_ABORTEDを返してリクエストを終了します。リクエストを終了せずにHTTPステータス・コードを設定するには、set-variableのerrorパラメータをnoactionパラメータと組み合せて使用します。HTTPステータス・コードをリライトするには、元のステータス・コードに一致するClientタグと新しいステータス・コードを設定するOutputディレクティブを使用します。

たとえば、次のコードは、302 Moved Temporarilyのすべてのレスポンスを301 Moved Permanentlyのレスポンスにリライトします。

<Client code="302">
Output fn="set-variable" error="301 Moved Permanently"
noaction="true"
</Client>

ブラウザ・リクエストが中断されたときに返すエラー・コードを設定します。

escape

util_uri_escapeを使用してURLをエスケープするかどうかを示すブール値。

util_uri_escapeの詳細は、『Oracle Traffic Director管理者ガイド』を参照してください。

find-pathinfo-forward

URIのファイル名に続くパス情報。

http-downgrade

HTTPのバージョン番号(1.0など)。

http-upgrade

HTTPのバージョン番号(1.0など)。

keep-alive

ブラウザからのキープ・アライブ・リクエストを受け入れるかどうかを決定するブール値。

name

このリクエストにディレクティブが適用されるobj.confファイル内の名前付きオブジェクトを追加で指定します。「assign-name」も参照してください。

noaction

trueの値は、結果コードをREQ_NOACTIONに設定することを示します。AuthTrans、NameTrans、ServiceおよびErrorステージのSAFでは、結果コードをREQ_NOACTIONに設定すると、そのステージにおける後続のSAFの実行を許可することを示します。結果コードの詳細は、『Oracle Traffic Director管理者ガイド』のカスタム・サーバー・アプリケーション関数の作成に関する項を参照してください。

nostat

可能であれば、URLに対してサーバーがstat()関数を実行しないように設定します。「assign-name」も参照してください。

senthdrs

HTTPレスポンス・ヘッダーがクライアントに送信されたかどうかを示すブール値。

ssl-unclean-shutdown

SSL3接続のクローズ方法を変更するために使用できるブール値。

注意: これはSSL3 RFCに違反しているため、SSL3の停止に関する問題が発生していることが確認できた場合にのみ、十分に注意してこれを使用してください。

stop

trueの値は、結果コードをREQ_PROCEEDに設定することを示します。AuthTrans、NameTrans、ServiceおよびErrorステージのSAFでは、結果コードをREQ_PROCEEDに設定すると、そのステージにおける後続のSAFの実行を許可しないことを示します。

url

リクエストを指定されたURLにリダイレクトします。

例

- 特定のサーバー・クラスに対するHTTPキープ・アライブ・リクエストを拒否しながら他のクラスに対するキープ・アライブ・リクエストは引き続き受け入れるには、次のAuthTransディレクティブをサーバー・クラスのobj.confに追加して、変数keep-aliveをdisabledに設定します。

AuthTrans fn="set-variable" keep-alive="disabled"

- 同じサーバー・クラスでHTTP/1.0を使用しながら残りのOracle Traffic DirectorクラスでHTTP/1.1を使用するように設定するには、AuthTransディレクティブを次のように指定します。

AuthTrans fn="set-variable" keep-alive="disabled" http-downgrade="1.0"

- HTTPヘッダーを各レスポンスに挿入するには、insert-pblockコマンドを使用してNameTransディレクティブをobj.confに追加し、セッションまたはリクエスト・パラメータ・ブロックとしてsrvhdrsを指定します。
たとえば、HTTPヘッダーのP3Pを挿入するには、次の行を各リクエストに追加します。

NameTrans fn="set-variable" insert-srvhdrs="P3P"

- 特定のURIに基づいてリクエストの処理を終了するには、Clientタグを使用して、URIと、一致した場合に変数abortをtrueに設定するAuthTransディレクティブを指定します。Clientタグは次のようになります。

<Client uri="*(system32|root.exe)*">
AuthTrans fn="set-variable" abort="true"
</Client>

- 事前定義変数を使用して、Oracle Traffic Directorでホストbadnameへのリダイレクトをホストgoodnameへのリダイレクトにリライトするには、次のようにします。

<If $srvhdrs{'location'} =~ "^(http|https)://badname/(.*)$"
Output fn="set-variable" $srvhdrs{'location'}="$1://goodname/$2"
</If>

- リクエスト時に$variableの値を設定するには、次のようにします。

<If "$time_hour:$time_min" < "8:30" || "$time_hour:$time_min" > "17:00">
AuthTrans fn="set-variable" $docroot="/var/www/docs/closed"
</If>
...
NameTrans fn="document-root" root="$docroot"

$docroot変数がserver.xmlで定義されているかどうかにかかわらず、Oracle Traffic Directorがローカル時間で午後5:00 - 午前8:00にアクセスされると、その値が/var/www/docs/closedに設定されます。

関連項目:
match-browser

A 変数、式、ワイルドカードおよび文字列補間の使用

この付録の内容は次のとおりです。

- If、ElseIfおよびElseタグ

- 変数

- 式

- 文字列補間

- ワイルドカード・パターン

A.1 If、ElseIfおよびElseタグ

If、ElseIfおよびElseタグでは、ディレクティブのセットを実行する条件を定義できます。これらのタグは、Objectタグの内部でのみ使用できます。また、これらのタグで式を評価して、含まれている1つ以上のディレクティブを条件付きで実行できます。次に、これらのタグの使用方法をまとめます。

- IfタグとElseIfタグでは、正規表現のサポートなど、より複雑な式構文を作成できます。IfおよびElseIfの式構文の詳細は、「式」を参照してください。

- If、ElseIfおよびElseタグには、他のタグを含めることができます。

- IfおよびElseIfの式は、含まれているディレクティブごとにではなく、リクエストごとに1回評価されます。

- If、ElseIfおよびElseタグに、複数のタイプのディレクティブを含めることはできません。

- IfタグとElseIfタグ内のディレクティブには、正規表現の後方参照を含めることができます。

使用する場合、ElseIfタグまたはElseタグは、IfタグまたはElseIfタグの直後に続ける必要があります。ElseIfタグとElseタグは、先行するIfまたはElseIfの式が論理真に評価されるとスキップされます。

次の例は、If、ElseIfおよびElseタグの構文を示しています。

<If $path eq "/">
<If $browser =~ "MSIE">
NameTrans fn="rewrite" path="/msie.html"
</If>
<ElseIf $browser =~ "Mozilla">
NameTrans fn="rewrite" path="/mozilla.html"
</ElseIf>
<Else>
NameTrans fn="rewrite" path="/unknown.html"
</Else>
</If>

この例では、ブラウザがMicrosoft Internet Explorer、Mozilla Firefoxまたは他のブラウザのいずれであるかに応じて異なるページを表示します。

A.2 変数

Oracle® Fusion Middlewareでは、サーバーによって事前に定義されている変数のセットを使用できる他、独自にカスタム変数を定義することもできます。この項には次のトピックが含まれます:

- 事前定義変数

- カスタム変数

- 変数の解決

A.2.1 事前定義変数

事前定義変数は、サーバーによって暗黙的に定義されています。次の表には、事前定義変数およびその説明がリストされています:

変数

説明

$n

正規表現の後方参照(n番目の取得サブパターンの値、n = 1...9)、たとえば$1。
正規表現の後方参照は、IfコンテナおよびElseIfコンテナの本文内において、コンテナ式に1つ以上の正規表現が含まれている場合にのみ使用できます。

$&

正規表現に一致した値。
正規表現の後方参照は、IfコンテナおよびElseIfコンテナの本文内において、コンテナ式に1つ以上の正規表現が含まれている場合にのみ使用できます。

$n

正規表現の後方参照(n番目の取得サブパターンの値、n = 1...9)、たとえば$1。
正規表現の後方参照は、IfコンテナおよびElseIfコンテナの本文内において、コンテナ式に1つ以上の正規表現が含まれている場合にのみ使用できます。

$&

正規表現に一致した値。
正規表現の後方参照は、IfコンテナおよびElseIfコンテナの本文内において、コンテナ式に1つ以上の正規表現が含まれている場合にのみ使用できます。

$body

OTDがクライアント(ブラウザ)から受け取る現行のHTTPリクエストのエンティティボディ(ある場合)が含まれます。この変数に格納されるデータのサイズは、server.xmlのhttp要素のbody-buffer-sizeサブ要素を使用して構成されます。

$browser

Webブラウザ・バージョン(クライアントがUser-Agentヘッダーまたは空の文字列を送信した場合の$headers{'user-agent'}のエイリアス)。

$chunked

チャンク・エンコーディングを使用してリクエスト本文が送信されたかどうかを示すブール変数。

$code

レスポンス・ステータス・コード。

$cookie{'name'}

リクエストのCookie nameの値。

$dns

$client{'dns'}のエイリアス。

$env{'name'}

環境変数nameの値(CGI/SHTMLの環境変数を含む)。

$headers{'name'}

rq->headersのnameの値、つまりリクエスト・ヘッダー名の値(nameは小文字の文字列)。

$id

server.xmlファイル内のvirtual-server要素のnameサブ要素によって指定される仮想サーバーID。

$internal

リクエストが内部で生成されたかどうかを示すブール値。

$ip

$client{'ip'}のエイリアス。

$keep_alive

接続が開いたままであるかどうかを示すブール値。

$keysize

$client{'keysize'}のエイリアス。

$method

リクエスト・メソッド($reqpb{'method'}のエイリアス)。

$path

リクエストされたパス(ステージに応じてURI、部分パス、ファイル・システム・パスのいずれか)。
事前定義変数pathはrq->varsのpathの値です。rq->varsにpathが設定されていない場合(たとえば、NameTransが完了していない場合)、pathはrq->varsのppathの値を取得します。

$path_info

$vars{'path-info'}のエイリアス。

$ppath

$vars{'ppath'}のエイリアス。

$protocol

リクエスト・プロトコル($reqpb{'protocol'}のエイリアス)。

$query

リクエスト問合せ文字列($reqpb{'query'}のエイリアス)。

$reason

レスポンス理由フレーズ。

$referer

$headers{'referer'}のエイリアス。

$reqpb{'name'}

rq->reqpbのnameの値。

$restarted

リクエストが再起動されたかどうかを示すブール値。

$secret_keysize

$client{'secret-keysize'}のエイリアス。

$server_url

自己参照URLの接頭辞。

$time

2006年1月1日00:00:00 UTCを基準として秒数で表したリクエスト受信時間。

$time_day

リクエストを受信した日。値の範囲は01から31です。

$time_hour

深夜を基準として表したリクエスト受信時間。値の範囲は00から23です。

$time_min

リクエストを受信した分。値の範囲は00から59です。

$time_mon

リクエストを受信した月。値の範囲は01から12です。

$time_sec

リクエストを受信した秒。値の範囲は00から61です。

$time_wday

リクエストを受信した曜日。値の範囲は0から6であり、0は日曜日に対応します。

$time_year

リクエストを受信した年(4桁)。

$type

$srvhdrs{'content-type'}のエイリアス。

$uri

リクエストされたリソースのURI($reqpb{'uri'}のエイリアス)。

$url

リクエストされたリソースのURL。

$urlhost

クライアントが接続したホスト名。

$vars{'name'}

rq->varsのnameの値。

$security

セキュア・トランスポートが使用されたかどうかを示すブール値。

$senthdrs

レスポンス・ヘッダーが送信されたかどうかを示すブール値。

$srvhdrs{'name'}

rq->srvhdrsのnameの値、つまりレスポンス・ヘッダー名の値(nameは小文字の文字列)。

A.2.2 カスタム変数

server.xmlファイルでは、variables要素を使用してカスタム変数を定義できます。その後、obj.confの関数の関数パラメータでこれらの変数を使用できます。リクエスト時にobj.confファイル内でset-variables関数を使用して変数を定義することもできます。

注意:
事前定義変数はカスタム変数よりも優先されます。カスタム変数には大文字の名前を使用することをお薦めします。大文字を使用することで、将来、事前定義変数のリストが拡張されても小文字の事前定義変数との競合を回避できます。

A.2.3 変数の解決

サーバーでは、$variableを解決するときに次の順序が使用されます:

1. 事前定義変数

2. obj.conf内でset-variableを使用してリクエスト時に定義された変数

3. server.xml内でvirtual-server要素のvariableサブ要素によって定義された変数

4. server.xml内でserver要素のvariableサブ要素によって定義された変数

$variableをリクエスト時に定義すると、その内容がrq->vars pblockに名前-値ペアとして格納されます。これらの変数にはserver.xmlの変数よりも高い優先度が割り当てられるため、server.xmlの変数はリクエスト時にオーバーライドされます。

A.3 式

式を使用すると、サーバー・アプリケーション関数(SAF)のパラメータを動的に作成してどのSAFを実行するかをリクエストごとに選択できます。式はリテラル、変数、関数および演算子から作成されます。式はIfタグおよびElseIfタグ、ログ形式文字列およびSAFのパラメータで使用します。

この項で説明する項目は、次のとおりです。

- 式構文

- ブール値としての式の結果

- 式リテラル

- 式変数

- 式演算子

- 式関数

- 正規表現

A.3.1 式構文

式構文はPerlで使用される構文と似ています。式はリテラル、変数、関数および演算子から作成されます。

次に、Ifタグ内での式の使用例を示します:

<If not $internal
and $uri =~ "^/private/(.*)$"
and $referer !~ "^https?://example.com/">
NameTrans fn="redirect"
url="http://example.com/denied.jsp?file=$1"
</If>

この例では、式により、リクエストが特定の基準を満たしているかどうか、たとえば、内部リクエストであるかどうかをチェックします。リクエストが基準を満たさない場合、サーバーはリクエストをリクエスト拒否用のURLにリダイレクトします。

式には、次のコンポーネントが含まれています:

- リテラル - "^/private/(.*)$"および"^https?://example.com/"

- 変数 - $internal、$uriおよび$referer

- 演算子 - not、and、=~および!~

IfタグとElseIfタグの詳細は、「If、ElseIfおよびElseタグ」を参照してください。

A.3.2 ブール値としての式の結果

特定の状況において、たとえば、If式またはElseIf式を評価した後、サーバーで式の結果をブール値として処理する必要があります。数値をブール値に変換するとき、サーバーでは次のルールが使用されます:

- ゼロはfalseに評価されます。

- それ以外のすべての数値はtrueに評価されます。

文字列をブール値に変換するとき、サーバーでは次のルールが使用されます:

- 長さがゼロの文字列はfalseに評価されます。

- 文字列0(ゼロ)はfalseに評価されます。

- それ以外のすべての文字列はtrueに評価されます。

A.3.3 式リテラル

式リテラルは文字列リテラルと数値リテラルに分けられます。

A.3.3.1 文字列リテラル

文字列リテラルは一重引用符(')または二重引用符(")で囲みます。文字列リテラルを一重引用符で囲んだ場合、リテラルの値は引用符内の値です。二重引用符を使用した場合、引用符内にある変数または式への参照がすべて補間されます。詳細は、文字列補間を参照してください。

次の式は、一重引用符および二重引用符の使用例です。

# This expression evaluates to true.
('foo' eq "foo")

# This expression evaluates to false.
('foo' eq "bar")

# This expression evaluates to true.
('foo' eq "f$(lc('O'))o")

# This expression may evaluate to true or false,
# depending on the value of the variable $foo
('$foo' eq "$foo")

二重引用符で囲んだ文字列内に補間されないドル記号$を含めるには、2つのドル記号($$)または円記号とドル記号(\$)のエスケープ・シーケンスを使用します。

二重引用符で囲んだリテラル内に二重引用符を表示する場合は、その前に円記号を付ける必要があります。二重引用符で囲んだリテラル内に円記号(\)を表示する場合は、その前に円記号を付ける必要があります。一重引用符で囲んだリテラル内に一重引用符を表示する場合は、その前に円記号を付ける必要があります。

次に、有効なリテラルおよび無効なリテラルの例を示します:

# The following are examples of valid literals
'this string literal is bracketed by single quotes'
"this string literal is bracketed by double quotes"
"the backslash, \\, escapes characters in double quote string literals"
'it\'s easy to use strings literals'

# The following are examples of invalid literals
'it's important to escape quote characters'
"any \ characters in double quote string literals must be escaped"

A.3.3.2 数値リテラル

数値リテラルには、10進数とオプションの小数点、先頭のゼロとそれに続く8進数、または先頭の0x接頭辞とそれに続く16進数を使用できます。16進数および8進数は、10進数の形式に自動的に変換されます。

次に、数値リテラルを使用する式の例を示します:

# The following expressions evaluate to true
(1 < 2)
(0x10 == "16")
(1 == 1.00)

# The following expressions evaluate to false
(1 > 2)
("0x10" == 16)
(1 != 1.00)

A.3.4 式変数

式では、任意の$variableを変数として使用できます。Clientタグの構文に合わせるため、式では事前定義変数名のドル記号$接頭辞を省略できます。たとえば、obj.confファイルに記述された次の3つの部分は意味的に同等です:

<If $uri = "*.html">
...
</If>

<If uri = "*.html">
...
</If>

<Client uri = "*.html">
...
</Client>

独自に定義した変数名には、$接頭辞を使用する必要があります。たとえば、server.xmlのvariable要素内にsomecustomvariableが定義されていても、次の式は無効です:

<If somecustomvariable = "foo">
...
</If>

この式を有効にするには、ドル記号接頭辞を追加します:

<If $somecustomvariable = "foo">
...
</If>

A.3.5 式演算子

次の表には、式で使用される演算子がリストされています。

演算子記号

演算子名

!

C言語形式の論理否定

=

ワイルドカード・パターン一致

=~

正規表現一致

!~

正規表現不一致

+

加算または単項のプラス

-

減算または単項のマイナス

.

文字列連結

defined

値が定義済

-d

ディレクトリが存在

-e

ファイルまたはディレクトリが存在

-f

ファイルが存在

-l

シンボリック・リンクが存在

-r

ファイルが読取り可能

-s

ファイル・サイズ

-U

URIがアクセス可能なファイルまたはディレクトリにマップ

<

より小さい(数値)

<=

以下(数値)

>

より大きい(数値)

>=

以上(数値)

lt

より小さい(文字列)

le

以下(文字列)

gt

より大きい(文字列)

ge

以上(文字列)

==

等しい(数値)

!=

等しくない(数値)

eq

等しい(文字列)

ne

等しくない(文字列)

^

C言語形式の排他的論理和

&&

C言語形式の論理積

||

C言語形式の論理和

not

論理否定

and

論理積

or

論理和

xor

排他的論理和

次の表には、式で使用できる演算子の優先順位が、優先順位の高いものから順にリストされています。

記号

オペランド

結合性

説明

( ), [ ]

0

左から右

カッコ

!、単項の+、単項の-

1

右から左

符号演算子

=, =~, !~

2

非結合的

パターン一致演算子

+, -, .

2

非結合的

加法演算子

defined、-d、-f、-l、-r、-s、-U

1

右から左

名前付き演算子

<、lt、<=、le、>、gt、>=、ge

2

非結合的

関係演算子

==、eq、!=、ne

2

非結合的

等値演算子

^

2

左から右

C言語形式の排他的論理和演算子

&&

2

左から右

C言語形式の論理積演算子

||

2

左から右

C言語形式の論理和演算子

not

1

右から左

論理否定演算子

and

2

左から右

論理積演算子

or、xor

2

左から右

論理和演算子

数値演算子(<、<=、>、>=、==、!=)は、文字列ではなく数値を対象として動作します。数値、日付およびタイムスタンプの比較を容易にするため、数値演算子では引数に含まれている空白、コロン、スラッシュおよびカンマがすべて無視されます。最初の桁より後のダッシュも無視されます。

注意:
通常、数値以外に数値演算子を使用することは正しくありません。

たとえば、次の式はtrueに評価されます:

# The following expression evaluates to true because both
# "foo" and "bar" are numerically equivalent to 0
("foo" == "bar")

A.3.6 式関数

式関数により、式で使用するデータを操作します。式関数はSAFとは異なります。SAFはHTTPリクエストに関連付けられた実際の作業を実行するのに対し、式関数は、どのSAFを実行するかおよび何のパラメータをSAFに渡すかを選択するために使用されます。

一部の式関数には、1つ以上の引数が必要です。式関数では、引数リストをカッコ(())で囲み、個々の引数をカンマ(,)で区切ります。

次の項には、個々の式関数がリストされています:

- atime

- choose

- ctime

- escape

- external

- httpdate

- lc

- length

- lookup

- lookupregex

- mtime

- owner

- uc

- unescape

- uuid

A.3.6.1 atime

atime関数は、指定されたファイルまたはディレクトリの最終アクセス時間を返します。

構文

atime (path)

引数

次の表で、この式関数の引数について説明します。

引数

説明

path

最終アクセスをリクエストするディレクトリまたはファイル名への絶対パス

関連項目:
「ctime」、「mtime」

A.3.6.2 choose

choose関数は、valuesのパイプで区切られた値を解析して、その1つをランダムに返します。

構文

choose (values)

引数

次の表で、この式関数の引数について説明します。

引数

説明

values

選択元となる、パイプ文字(|)で区切られた値のリスト

例

次のobj.confコードでは、chooseを使用して3つのイメージの中から1つをランダムに選択します:

NameTrans fn="rewrite"
from="/images/random"
path="/images/$(choose('iwsvi.jpg|0061.jpg|webservervii.jpg'))"

A.3.6.3 ctime

ctime関数は、指定されたファイルまたはディレクトリの最終ステータス変更時刻を返します。

構文

ctime (path)

引数

次の表で、この式関数の引数について説明します。

引数

説明

path

最終ステータス変更をリクエストするディレクトリまたはファイル名への絶対パス

関連項目:
「atime」、「mtime」

A.3.6.4 escape

escape関数は、util_uri_escapeを使用して特殊なオクテットをパーセント・エンコードされた同等値に変換することによってURIをエンコードし、その結果を返します。

構文

escape(uri)

引数

次の表で、この式関数の引数について説明します。

引数

説明

uri

式関数によって変換されるURI

関連項目:
unescape

A.3.6.5 external

external関数は、外部のリライト・プログラムに値を渡し、その結果を返します。

externalを起動するたびに改行が1回発生しますが、これは終端された行が外部のリライト・プログラムのstdinに書き込まれるためです。このプログラムでは、入力行ごとに出力行を1行生成する必要があります。外部のリライト・プログラムを開発するときは、stdoutのバッファリングを回避することが重要です。たとえば、Perlでは$| = 1;と記述するとバッファリングが無効になります。サーバーでは外部のリライト・プログラムが入力行ごとに出力行を1行生成することを想定しているため、外部のリライト・プログラムがその出力をバッファリングしている場合、サーバーが応答しなくなる可能性があります。

構文

external (program, value)

引数

次の表に、external関数の引数を示します。

引数

説明

program

program引数は、外部のリライト・プログラムのファイル名です。プログラムはオペレーティング・システムのデフォルト・シェル(UNIX/Linuxの/bin/sh)またはコマンド・インタプリタ(WindowsのCMD.EXE)を使用して実行されるため、programには絶対パス、またはオペレーティング・システムのPATHにあるプログラムの名前を指定する必要があります。サーバーは要求に応じて外部のリライト・プログラムを起動します。サーバー・プロセスによってプログラムのインスタンスが一度に複数実行されることはありません。

value

リライト・プログラムに渡される値。

例

次の例は、接頭辞/home/を/u/に変更するために使用する、外部のリライト・プログラムrewrite.plです:

#!/usr/bin/perl

$| = 1;

while (<STDIN>) {

s|^/home/|/u/|;

print $_;

}

この例において、rewrite.plを起動するために使用するexternal式関数は、次のとおりです:

NameTrans fn="rewrite" path="$(external('rewrite.pl', $path))"

A.3.6.6 httpdate

httpdate関数は、ExpiresなどのHTTPヘッダー・フィールドで使用する、RFC 1123の日付タイムスタンプを返します。

構文

httpdate (time)

引数

次の表で、httpdate関数の引数について説明します。

引数

説明

time

時間の値。

例

次のobj.confコードは、レスポンスが1日より長い期間キャッシュされていないことを示すExpiresヘッダーを設定するために使用できます:

ObjectType fn="set-variable"

insert-srvhdrs="$(httpdate($time + 86400))"

A.3.6.7 lc

lc関数は、文字列内にあるすべてのUS ASCII文字を小文字に変換し、その結果を返します。

構文

lc(string)

引数

次の表で、lc関数の引数について説明します。

引数

説明

string

式関数によって小文字に変換される文字列

例

次のobj.confコードは、リクエストURIに間違って大文字を使用したクライアントを同等の小文字URIにリダイレクトするために使用できます:

<If code == 404 and not -e path and -e lc(path)>

Error fn="redirect" uri="$(lc($uri))"

</If>e($time + 86400))"

関連項目:
uc

A.3.6.8 length

length関数は、その引数の長さ、つまり、文字列の長さを表す数値を返します。

構文

length (string)

引数

次の表で、この式関数の引数について説明します。

引数

説明

string

式関数によって長さが計算される文字列

例

次のobj.confコードは、255バイトよりも長いURIをリクエストしたクライアントに404 Not Foundエラーを送信するために使用できます:

<If length($uri) > 255)>

PathCheck fn="deny-existence"

</If>

A.3.6.9 lookup

lookup関数は、テキスト・ファイル内にある名前-値ペアを調べ、名前nameに対応する値を返します。ファイル内の名前-値ペアは、空白で区切られます。

指定された名前の名前-値ペアがファイル内に含まれていない場合、この関数はdefaultvalueの値(指定されている場合)を返すか、空の文字列を返します。

構文

lookup(filename, name, defaultvalue)

引数

次の表で、この式関数の引数について説明します。

引数

説明

filename

行ごとに1つの名前-値ペアを含むテキスト・ファイルの名前を示します。filenameには、絶対パス、またはサーバーのconfigディレクトリへの相対パスを指定できます。名前と値は、空白で区切られます。ポンド記号(#)で始まる行は無視されます。

name

この関数によってテキスト・ファイル内を検索する対象となる、名前-値ペアの名前。

defaultvalue

filenameが存在するものの、その中に名前がnameの値に一致する名前-値ペアが含まれていない場合に、この関数が返す値。defaultvalueが指定されていない場合、このデフォルト値は空の文字列になります。

例

次の例は、ショートカットURIをURIにマップするlookup関数とともに使用できる、urimap.confというテキスト・ファイルを示しています:

# This file contains URI mappings for Oracle Traffic Director.

# Lines beginning with # are treated as comments.

# All other lines consist of a shortcut URI, whitespace, and canonical URI.

/webserver /software/products/web_srvr/home_web_srvr.html

/solaris   /software/solaris/

/java      /software/java/

前述のサンプル・テキスト・ファイルを使用して、よくアクセスするリソースのショートカットURIを実装するには、次のlookup式を使用します:

<If lookup('urimap.conf', uri)>

NameTrans fn="redirect" url="$(lookup('urimap.conf', uri))"

</If>

A.3.6.10 lookupregex

lookupregex関数は、テキスト・ファイル内にある正規表現-値ペアを調べます。この関数は、入力として文字列を使用し、それを各行の正規表現と照合します。これは、一致した場合にのみ対応する値を返します。ファイルに一致が含まれていない場合、この関数はデフォルト値(指定されている場合)を返すか、空の文字列を返します。

構文

lookupregex (filename,string,defaultvalue)

引数

次の表で、この式関数の引数について説明します。

引数

説明

filename

filenameは、1行ごとに1つの正規表現-値ペアを含むテキスト・ファイルの名前です。filenameには、絶対パスまたはサーバーの構成ディレクトリを基準とする相対パスを指定できます。

string

テキスト・ファイルのすべての正規表現と照合する文字列。

defaultvalue

filenameが存在するものの、一致する正規表現-値ペアが含まれていない場合に、この関数が返す値。defaultvalueが指定されていない場合、このデフォルト値は空の文字列になります。

A.3.6.11 mtime

mtime関数は、指定されたファイルまたはディレクトリの最終データ変更時刻を返します。

構文

mtime(path)

引数

次の表で、この式関数の引数について説明します。

引数

説明

path

最終データ変更をリクエストするディレクトリまたはファイル名への絶対パス

関連項目:
「atime」、「ctime」

A.3.6.12 owner

owner関数は、ファイルの所有者を返します。

構文

owner(path)

引数

次の表で、この式関数の引数について説明します。

引数

説明

path

最終データ変更をリクエストするディレクトリまたはファイル名への絶対パス

A.3.6.13 uc

uc関数は、文字列内にあるすべてのUS ASCII文字を大文字に変換し、その結果を返します。

構文

uc(string)

引数

次の表で、この式関数の引数について説明します。

表A-1 ucの引数

引数

説明

string

式関数によって大文字に変換される文字列

関連項目:
lc

A.3.6.14 unescape

unescape関数は、util_uri_unescapeを使用してパーセント・エンコードされたオクテットをそのエンコード前の形式に変換することによってURIをデコードし、その結果を返します。

構文

unescape(uri)

引数

次の表で、この式関数の引数について説明します。

表A-2 unescapeの引数

引数

説明

uri

関数によって変換されるURI。

関連項目:
escape

A.3.6.15 uuid

uuid関数は、UUIDを文字列として返します。uuidを呼び出すと、毎回異なるUUIDが返されます。値が一意であることが保証されているため、UUIDはクライアント固有のCookie値を作成するときに役立ちます。

構文

uuid()

A.3.7 正規表現

If式およびElseIf式では、正規表現マッチング演算子の等号とチルダ(=~)および感嘆符とチルダ(!~)を使用して正規表現を評価できます。これらの正規表現では、Perl Compatible Regular Expressions (PCRE)によって実装されたPerl互換構文を使用します。

デフォルトでは、正規表現の大文字と小文字は区別されます。次の例のように正規表現の先頭に(?i)オプション・フラグを追加すると、大文字と小文字を区別しないようにリクエストできます:

$uri =~ '^/[Ff][Ii][Ll][Ee][Nn][Aa][Mm][Ee]$'

$uri =~ '(?i)^/filename$'

If式またはElseIf式に正規表現が含まれている場合、コンテナ本文の引数内でその正規表現の後方参照を使用できます。正規表現の後方参照は$nの形式で表され、nは、次の例のような正規表現の取得サブパターンに対応する1から9の整数になります:

<If $path =~ '^(.*)(\.html|\.htm)$'>
NameTrans fn="rewrite" path="$1.shtml"
</If>

表示されている例では、If式内に2つのサブパターンが使用されているため、$1および$2を後方参照として使用できます。この例では、最初の取得サブパターンの値がNameTrans fn="rewrite"のパラメータ内で使用されています。2番目の取得サブパターンの値は無視されます。

If式またはElseIf式には、次の例のように、その同じIf式またはElseIf式にある前の正規表現への後方参照を含めることができます。

<If "foo" =~ "(.*)" and $1 eq "foo">
# Any contained directives will be executed
# since $1 will evaluate to "foo"
...
</If>

表示されているIf式は常にtrueに評価されるため、If式の内容は実行されます。

ただし、If式、Elseif式およびそれらに含まれているディレクティブに、親コンテナ内の正規表現への後方参照を含めることはできません。たとえば、次のobj.confエントリは無効です:

<If $path =~ '(.*)\.css'>
<If $browser = "*MSIE*">
# This example is invalid as $1 is not defined
AuthTrans fn="rewrite" path="$1-msie.css"
</If>
</If>

ドル記号およびアンパサンド$&を使用すると、最後に正規表現に一致した値を取得できます。次のobj.confエントリを使用すると、HTMLファイルに対するリクエストを別のサーバーにリダイレクトできます:

<If $path =~ '\.html$' or $path =~ '\.htm$' >
NameTrans fn="redirect" url="http://docs.example.com$&"
</If>

A.4 文字列補間

変数または式への参照を含む文字列は、補間文字列と呼ばれます。補間文字列を使用した場合、埋め込まれた式および変数が評価され、その結果が文字列に挿入されます。データを文字列に挿入する操作は、文字列補間と呼ばれます。

補間文字列は、式、ログ形式およびobj.confのパラメータ内で使用します。式では、二重引用符で囲まれた文字列リテラルのみが補間されます。詳細は、式リテラルを参照してください。

A.4.1 補間文字列での変数の使用

文字列に変数の値を含めるには、変数の名前の前にドル記号($)を付けます。たとえば、server.xml内にある次のformat要素では、HTTPリクエストごとにクライアントのIPアドレス、リクエストされたURIおよび対応するファイル・システム・パスがロギングされます:

<access-log>
<file>access</file>
<format>$ip "$uri" $path</format>
</access-log>

この例において、$ip、$uriおよび$pathは事前定義変数です。詳細は、変数を参照してください。

アクセス・ログおよびログ形式の詳細は、「カスタム・アクセス・ログ・ファイル形式の使用」を参照してください。

変数の名前があいまいになる場合は、名前に中カッコ{}を追加します。たとえば、次の文字列には事前定義の$path変数への参照が含まれています:

"${path}html"

中カッコがない場合、文字列にはpathhtmlという仮想的な変数への参照が含まれます。

A.4.2 補間文字列での式の使用

文字列に式の結果を含めるには、式の前にドル記号および左カッコ$(を付け、式の後に右カッコ)を付けます。たとえば、次の2つの文字列は補間後に同一になります:

"$(2 + 2)"

"4"

補間文字列をobj.confのパラメータとして使用した場合、対応する命令が実行されるたびに文字列が補間されます。たとえば、obj.confファイル内で次の行を使用すると、リクエストされたURIおよびファイルredirect.confの内容に基づいてクライアントをリダイレクトできます:

<Object ppath="/redirect/*">
NameTrans fn="redirect" url="$(lookup('redirect.conf', $uri, '/'))"
</Object>

この例では、NameTransディレクティブが起動されるたびに式lookup('redirect.conf', $uri, '/')が評価され、その結果がredirect SAFにそのurlパラメータで渡されます。

A.5 ワイルドカード・パターン

Oracle Traffic Directorでは、式でのワイルドカード・パターン一致がサポートされています。ワイルドカード文字を特別な意味を持たせずにそのまま使用するには、その文字の前に円記号(\)を付けます。

次の表で、様々なワイルドカード・パターンおよびそれらの用途について説明します。

ワイルドカード

用途

*

0文字以上の文字に一致します。

?

任意の1文字に一致します。

|

or式です。この演算子とともに使用するサブストリングには、アスタリスク*、ドル記号$など、他の特殊文字を含めることができます。サブストリングは、たとえば(a|b|c)のようにカッコで囲む必要がありますが、カッコをネストすることはできません。

$

文字列の終わりに一致します。これはor式で役立ちます。

[abc]

a、bまたはcの1文字に一致します。これらの式内では、特殊文字として扱う必要がある文字は右大カッコ]のみであり、他のすべての文字は特殊文字には該当しません。

[a-z]

aからzの間の1文字に一致します。

[^az]

aおよびzを除く、任意の1文字に一致します。

*~

この式の後に別の式を指定することで、2番目の式に一致するすべてのパターンが除外されます。

次の表に、ワイルドカード・パターンの例およびその結果を示します。

ワイルドカード

結果

*.example.com

文字列.example.comで終わる任意の文字列に一致します。

(quark|energy).example.com

quark.example.comまたはenergy.example.comに一致します。

198.93.9[23].???

198.93.92または198.93.93で始まり任意の3文字で終わる数値文字列に一致します。

*.*

ピリオドが含まれる任意の文字列に一致します。

*~example-*

example-で始まる文字列を除く、任意の文字列に一致します。

*.example.com~quark.example.com

1つのホストquark.example.comを除く、ドメインexample.comの任意のホストに一致します。

*.example.com~(quark|energy|neutrino).example.com

ホストquark.example.com、energy.example.comおよびneutrino.example.comを除く、ドメイン.example.comの任意のホストに一致します。

*.com~*.example.com

サブドメインexample.comのホストを除く、ドメイン.comの任意のホストに一致します。

*~*.gif*

gifを含む文字列を除く、任意の文字列に一致します。

B カスタム・アクセス・ログ・ファイル形式の使用

この付録では、Oracle® Fusion Middlewareで使用するログ形式について説明します。これらの形式オプションを使用して、ログ・ファイルの形式をカスタマイズします。管理コンソールからこれらを入力するか、server.xmlファイル内でaccess-log要素のformatサブ要素を編集することができます。

ログ形式では、$variableおよび$(expression)という構文で変数および式を使用できます。

カスタム・ログ形式を作成する場合、パーセント記号(%)で囲まれた文字列は、サーバー内のパラメータ・ブロックに格納された名前-値ペアの名前部分として認識されます。それ以外の追加テキストはリテラルのテキストとして扱われるため、行にテキストを追加して読みやすくすることができます。パーセント記号ルールの例外は%SYSDATE%コンポーネントであり、これは現在のシステム日付を表します。%SYSDATE%の形式は、時刻形式%d/%b/%Y:%H:%M:%SおよびGMTからのオフセットで表現されます。

ログ・ファイル用に形式パラメータが指定されていない場合は、共通ログ形式が使用されます:

"%Ses->client.ip% - %Req->vars.auth-user% [%SYSDATE%]
\"%Req->reqpb.clf-request%\" %Req->srvhdrs.clf-status%
%Req->srvhdrs.content-length%"

次の表に、ログ・ファイル形式の一般的なコンポーネントを示します。特定のコンポーネントはスペースを含む値に解決される可能性があるため、エスケープ引用符(\")で囲まれています。

オプション

コンポーネント

クライアントのホスト名(iponlyがflex-log内で指定されているかDNS名が使用できない場合を除く)またはIPアドレス

%Ses->client.ip%

クライアントのDNS名

%Ses->client.dns%

システム日付

%SYSDATE%

完全なHTTPリクエスト行

\"%Req->reqpb.clf-request%\"

ステータス

%Req->srvhdrs.clf-status%

レスポンス・コンテンツの長さ

%Req->srvhdrs.content-length%

レスポンス・コンテンツ・タイプ

%Req->srvhdrs.content-type%

リファラ・ヘッダー

\"%Req->headers.referer%\"

ユーザー・エージェント・ヘッダー

\"%Req->headers.user-agent%\"

HTTPメソッド

%Req->reqpb.method%

HTTP URI

%Req->reqpb.uri%

HTTP問合せ文字列

%Req->reqpb.query%

HTTPプロトコル・バージョン

%Req->reqpb.protocol%

受入れヘッダー

%Req->headers.accept%

日付ヘッダー

%Req->headers.date%

If-Modified-Sinceヘッダー

%Req->headers.if-modified-since%

認可ヘッダー

%Req->headers.authorization%

任意のヘッダー値

%Req->headers.headername%

許可されているユーザーの名前

%Req->vars.auth-user%

Cookieの値

%Req->headers.cookie.name%

Req->vars内にある任意の変数の値

%Req->vars.varname%

仮想サーバーID

%vsid%

ECID

%Req->vars.ecid%。詳細は、httpの要素を参照してください。

RID

%Req->vars.rid%。詳細は、httpの要素を参照してください。

期間

%duration%
サーバーでのリクエストの処理にかかった時間をマイクロ秒単位で記録します。%duration%を使用するには、事前に統計を有効にする必要があります。

システム時間

%Time
1970年1月1日00:00:00 UTCを基準として秒単位で表したシステム時間。

相対時間

%RELATIVETIME%
ロギング開始時点を基準として秒単位で表したシステム時間。

メソッド番号

%Req->method_num%
NSAPIで使用されるHTTPメソッドを表す番号。

HTTPプロトコル・バージョン

%Req->protv_num%
NSAPIで使用されるHTTPプロトコル・バージョンを表す番号。

HTTPリクエスト行

%Req->reqpb.clf-request.method%
HTTPリクエスト行のメソッド。

HTTP URI

%Req->reqpb.clf-request.uri%
HTTPリクエスト行のURI。

URIパス

%Req->reqpb.clf-request.uri.abs_path%
URIの絶対パス・コンポーネント

URI問合せ

%Req->reqpb.clf-request.uri.query%
URIの問合せコンポーネント。

user_dn

%Ses->client.user_dn%
WebセキュリティのSSLクライアント証明書認証。

HTTPプロトコル

%Req->reqpb.clf-request.protocol%
HTTPリクエスト行のプロトコル。

プロトコル名

%Req->reqpb.clf-request.protocol.name%
プロトコルの名前。

プロトコル・バージョン

%Req->reqpb.clf-request.protocol.version%
プロトコルのバージョン。

オリジン・サーバー

%Req->vars.origin-server%
リクエストを処理したオリジン・サーバー。

アクセス・ログのキャッシュの「終了」ステータス

%Req->vars.proxy-cache-finish-status%
プロキシ・サーバー内のオリジン・サーバー・レスポンスのキャッシュ・ステータス

次の表に、構成可能な追加のログ・ファイル・パラメータを示します。

オプション

コンポーネント

暗号名

%Ses->client.cipher%

暗号鍵のサイズ(ビット)

%Ses->client.keysize%

秘密鍵のサイズ(ビット)

%Ses->client.secret-keysize%

証明書発行者のDN

%Ses->client.issuer_dn%

証明書ユーザーのDN

%Ses->client.user_dn%

SSLセッション識別子

%Ses->client.ssl-id%

C 時刻書式の使用

この付録では、サーバー・ログの日付と時刻で使用される書式文字列について説明します。これらの書式は、一部の組込みSAFによって、NSAPI関数のutil_strftimeで使用されます。書式は、strftime Cライブラリ・ルーチンで使用されるものに似ていますが、同一ではありません。

表C-1 日付と時刻の書式文字列

属性

指定できる値

%a

曜日の短縮形(3文字)

%d

10進数による月内の日(01 - 31)

%S

10進数による秒(00 - 59)

%M

10進数による分(00 - 59)

%H

24時間書式の時間(00 - 23)

%Y

10進数による世紀を含んだ年(最大2099)

%b

月名の短縮形(3文字)

%h

月名の短縮形(3文字)

%T

HH:MM:SS書式の時刻

%X

HH:MM:SS書式の時刻

%A

曜日(正式名)

%B

月(正式名)

%C

%a %b %e %H:%M:%S %Y

%c

%m/%d/%y %H:%M:%S書式の日時

%D

%m/%d/%y書式の日付

%e

10進数による先頭の0のない月内の日(1 - 31)

%I

12時間書式の時間(01 - 12)

%j

10進数による年内の日(001 - 366)

%k

先頭の0のない24時間書式の時間(0 - 23)

%l

先頭の0のない12時間書式の時間(1 - 12)

%m

10進数による月(01 - 12)

%n

ライン・フィード(改行)

%p

12時間制のa.m./p.m.インジケータ

%R

%H:%M書式の時刻

%r

%I:%M:%S %p書式の時刻

%t

タブ

%U

日曜日を週の初日とする10進数による年内の週(00 - 51)

%w

10進数による週日(0 - 6、日曜は0)。

%W

月曜日を週の初日とする10進数による年内の週(00 - 51)

%x

%m/%d/%y書式の日付

%y

10進数による世紀を含まない年(00 - 99)

%%

パーセント記号

D サーバー構成要素および事前定義SAFのアルファベット順のリスト

この付録では、server.xml要素などのサーバー構成要素やobj.confファイルの事前定義SAFのアルファベット順のリストを提供します。

A

access-log

access-log-buffer

assign-name

B

block-auth-cert

block-cache-info

block-cipher

block-ip

block-issuer-dn

block-jroute

block-keysize

block-proxy-agent

block-secret-keysize

block-ssl

block-ssl-id

block-user-dn

block-via

block-xforwarded-for

C

check-request-limits

D

deny-existence

dns

dns-cache

E

event

F

failover-group

flex-log

forward-auth-cert

forward-cache-info

forward-cipher

forward-ip

forward-issuer-dn

forward-jroute

forward-keysize

forward-proxy-agent

forward-secret-keysize

forward-ssl-id

forward-user-dn

forward-via

forward-xforwarded-for

G

get-client-cert

get-sslid

H

health-check

http

http-client-config

http-listener

I

instance

K

keep-alive

L

localization

log

M

map

N

nt-uri-clean

O

origin-server-pool

origin-server

P

property

proxy-cache

proxy-cache-config

proxy-cache-override-http

proxy-retrieve

Q

qos-error

qos-handler

R

remove-filter

restart

reverse-map

rewrite

S

server

service-proxy-cache-dump

service-trace

set-cache-control

set-cookie

set-origin-server

set-priority

set-proxy-server

set-variable

snmp

ssl

ssl-logout

ssl-session-cache

stats

stats-xml

strip-params

T

thread-pool

time

type-by-exp

type-by-extension

U

unix-uri-clean

V

variable

virtual-server

W

webapp-firewall-ruleset

索引
A B C D E F G H I K L M N O P Q R S T U V W

A

access-log要素, 3.1.1

access-log-buffer要素, 3.1.2

AddLog, 4.1.1

制御フロー, 4.4.9

関数の説明, 5.10

admin-serverディレクトリ, 1.2.4 all-requestsバケット, 5.1 always-use-keep-aliveパラメータ, 5.5.29 assign-name関数, 5.3.1 AuthTrans, 4.1.1

制御フロー, 4.4.1

関数の説明, 5.2

B

後方参照, A.3.7

binディレクトリ, 1.2.1

block-auth-cert関数, 5.5.1

block-cache-info関数, 5.5.2

block-cipher関数, 5.5.3

block-ip関数, 5.5.4

block-issuer-dn関数, 5.5.5

block-jroute関数, 5.5.6

block-keysize関数, 5.5.7

block-proxy-agent関数, 5.5.8

block-secret-keysize関数, 5.5.9

block-ssl-id関数, 5.5.10, 5.5.11

block-user-dn関数, 5.5.12

block-via関数, 5.5.13, 5.5.14

bong-fileパラメータ, 5.4.2

ブール

式の結果, A.3.2

バケット

すべてのリクエスト, 5.1

デフォルト, 5.1

obj.confの組込みSAF, 5

C

キャッシュ

DNS, 3.1.8

キャッシュ制御ディレクティブ, 5.5.38 obj.confでの大/小文字区別, 4.6.3 charsetパラメータ, 5.5.40 check-request-limits関数, 5.4.1 choose関数, A.3.6.2 ChunkedRequestBufferSizeパラメータ, 5.9 ChunkedRequestTimeoutパラメータ, 5.9 Clientタグ, 4.3.3.1 cluster要素、3.1.3, 3.1.4, 3.1.5 CmapLdapAttrプロパティ, 1.1.3.2 codeパラメータ, 5.11.1, 5.11.2 コメント

obj.conf内, 4.6.9

configディレクトリ, 1.2.5 controlパラメータ, 5.5.30, 5.5.31, 5.5.32, 5.5.37, 5.5.38 obj.confのコアSAF, 5 ctime関数, A.3.6.3 カスタム・ログ・ファイル形式, B カスタム変数, A.2.2

D

月内の日, C

defaultオブジェクト, 4.3

default-bucket, 5.1

deny-existence関数, 5.4.2

ディレクティブ

obj.conf, 5

obj.conf内での順序, 4.6.1

obj.conf内での構文, 4.2

ディレクトリ構造, 1.2 DNCompsプロパティ, 1.1.3.2 dns要素, 3.1.7 dns-cache要素, 3.1.8 domainパラメータ, 5.5.39 dorequestパラメータ, 5.4.3 dotdirokパラメータ, 5.4.4, 5.4.6 動的再構成, 1.3

E

server.xmlファイルの要素, 3.1

Elseタグ, 4.3.3.2

ElseIfタグ, 4.3.3.2

正規表現の使用, A.3.7

encパラメータ, 5.5.40 Errorディレクティブ, 4.1.1

制御フロー, 4.4.10

関数の説明, 5.11

errorパラメータ, 5.4.1 エラー

カスタマイズされたメッセージの送信, 5.11.1, 5.11.2

escape関数, A.3.6.4 escapeパラメータ, 5.12.3 event要素, 3.1.9 expパラメータ, 5.5.40 式, A.3

関数, A.3.6

補間文字列, A.4.2

リテラル, A.3.3

演算子, A.3.5

正規表現, A.3.7

ブールとしての結果, A.3.2

構文, A.3.1

変数, A.3.4

external関数, A.3.6.5

F

failover-group要素, 3.1.10

filterパラメータ, 5.12.1, 5.12.4

FilterCompsプロパティ, 1.1.3.2

find-pathinfo-forwardパラメータ, 5.3.1

flex-log関数, 5.10.1

obj.conf内での制御フロー, 4.4

FlushTimerパラメータ, 5.9

fnパラメータ

obj.confのディレクティブ内, 4.2

スラッシュ, 4.6.8 forward-auth-cert関数, 5.5.15 forward-cache-info関数, 5.5.16 forward-cipher関数, 5.5.17 forward-ip関数, 5.5.18 forward-issue-dn関数, 5.5.19 forward-jroute関数, 5.5.20 forward-keysize関数, 5.5.21 forward-proxy-agent関数, 5.5.22 forward-secret-keysize関数, 5.5.23 forward-ssl-id関数, 5.5.24, 5.5.25 forward-user-dn関数, 5.5.26 forward-via関数, 5.5.27, 5.5.28 fromパラメータ, 5.2.3, 5.3.1, 5.3.5, 5.12.3, 5.12.5, 5.12.6, 5.12.7, 5.12.8 関数

共通, 5.12

式, A.3.6

G

get-client-cert関数, 5.4.3

get-sslid関数, 5.2.1

H

health-check関数, 3.1.11

http要素, 3.1.12

http-client-config関数, 5.5.29

httpdate関数, A.3.6.6

http-listener要素, 3.1.13

I

Ifタグ, 4.3.3.2

正規表現の使用, A.3.7

InitFnプロパティ, 1.1.3.2 Input, 4.1.1

制御フロー, 4.4.5

関数の説明, 5.6

オプション・パラメータ, 5.6

insert-filter関数, 5.12.1

Inputの使用, 4.4.5

Outputディレクティブの使用, 4.4.6

instance要素, 3.1.14 内部リクエスト, 4.5.2 補間文字列, A.4 intervalパラメータ, 5.4.1 iponlyパラメータ, 5.10.1

K

keep-alive要素, 3.1.15

keep-aliveパラメータ, 5.5.29, 5.5.29

keep-alive-timeoutパラメータ, 5.5.29, 5.5.29

L

langパラメータ, 5.5.40

lc関数, A.3.6.7

length関数, A.3.6.8

libディレクトリ, 1.2.3

libraryプロパティ, 1.1.3.2

行継続文字

obj.conf内, 4.6.7

リテラル

式, A.3.3

数値, A.3.3.2

文字列, A.3.3.1

localization要素, 3.1.16 ログ・アナライザ, 5.10.1 log要素、3.1.17, 3.1.18 ログ・ファイル

アナライザ, 5.10.1

ログ・ファイル形式, B lookup関数, A.3.6.9

M

map関数, 5.3.2, 5.3.3

match-browser関数, 5.12.2, 5.12.9, 5.12.10

max-ageパラメータ, 5.5.39

max-connectionsパラメータ, 5.4.1

max-rpsパラメータ, 5.4.1

methodパラメータ, 5.4.3, 5.6, 5.7, 5.9

monitorパラメータ, 5.4.1

月名, C

mtime関数, A.3.6.11

N

name属性

obj.confオブジェクト内, 4.3

オブジェクト内, 4.3.1

nameパラメータ, 5.2.3, 5.3.1, 5.10.1 NameTrans, 4.1.1

制御フロー, 4.4.2

関数の説明, 5.3

デフォルト以外のオブジェクト

処理, 4.4.2.1

nostatパラメータ, 5.3.1 ntrans-base, 5.3.1, 5.3.1 nt-uri-clean関数, 5.4.4 数値リテラル, A.3.3.2

O

obj.conf

大/小文字の区別, 4.6.3

Clientタグ, 4.3.3.1

コメント, 4.6.9

ディレクティブの構文, 4.2

ディレクティブ, 4.2, 5

Elseタグ, 4.3.3.2

ElseIfタグ, 4.3.3.2

制御フロー, 4.4

機能フローの変更, 4.5

Ifタグ, 4.3.3.2

Objectタグ, 4.3

ディレクティブの順序, 4.6.1

概要, 4

ディレクティブのパラメータ, 4.6.2

他のオブジェクトの処理, 4.4.2.1

構文規則, 4.6

Objectタグ, 4.3

name属性、4.3

ppath属性, 4.3

オブジェクト

デフォルト以外のオブジェクトの処理, 4.4.2.1

ObjectType, 4.1.1

制御フロー, 4.4.4

関数の説明, 5.5

演算子

式, A.3.5

順序

obj.confのディレクティブ, 4.6.1

origin-server要素, 3.1.20 origin-server-pool要素, 3.1.19 出力, 4.1.1

制御フロー, 4.4.6

関数の説明, 5.7

オプション・パラメータ, 5.7

owner関数, A.3.6.12

P

パラメータ

obj.confディレクティブ, 4.6.2

パス名

obj.conf内, 4.6.8

pathパラメータ, 5.4.1, 5.4.2 PathCheck, 4.1.1

制御フロー, 4.4.3

関数の説明, 5.4

ppath属性

obj.confオブジェクト内, 4.3

オブジェクト内, 4.3.2

obj.confの事前定義SAF, 5 事前定義変数, A.2.1 デフォルト以外のオブジェクトの処理, 4.4.2.1 property要素、3.1.21 protocolパラメータ, 5.5.29 proxy-agentパラメータ, 5.5.29, 5.5.29 proxy-retrieve関数, 5.9.1

Q

qos-error関数, 5.11.1, 5.11.2

qos-handler関数, 5.2.2, 5.2.3

queryパラメータ, 5.6, 5.7, 5.9

引用符

obj.conf内, 4.6.5

R

reconfig, 1.3

redirect関数, 5.12.3

正規表現, A.3.7

remove-dir関数, 5.9.2

remove-filter関数, 5.12.4

リクエスト処理プロセス, 4.1

制御フロー, 4.4

リクエスト

内部, 4.5.2

再起動, 4.5.1

requireパラメータ, 5.4.3 restart関数, 5.12.5, 5.12.6, 5.12.7, 5.12.8 リクエストの再起動, 4.5.1 retriesパラメータ, 5.5.29 reverse-map関数, 5.3.4 rewrite関数, 5.3.5 rewrite-content-locationパラメータ, 5.3.4, 5.8.1 rewrite-headernameパラメータ, 5.3.4, 5.8.1 rewrite-hostパラメータ, 5.3.3, 5.8.1 rewrite-locationパラメータ, 5.3.4, 5.8.1 ルート要素, 3.1.24 Route, 4.1.1

制御フロー, 4.4.7

関数の説明, 5.8

route-cookieパラメータ, 5.8.1 route-hdrパラメータ, 5.8.1 ルール

obj.confの編集, 4.6

S

SAF

obj.confでの事前定義, 5

セパレータ

obj.conf内, 4.6.4

server

制御フロー, 4.4

obj.conf内での命令, 4.2

デフォルト以外のオブジェクトの処理, 4.4.2.1

server要素、3.1.24 サーバー・インスタンス・ディレクトリ, 1.2.5 server.xml, 2

編集, 2.1.1

要素, 3

概要, 2.1

サンプル, 2.3

検証, 2.1.1.3

Service, 4.1.1

制御フロー, 4.4.8

関数の説明, 5.9

オプション・パラメータ, 5.9

service-trace関数, 5.9.4 set-cache-control関数, 5.5.38 set-cookie関数, 5.5.39 set-origin-server関数, 5.8.1 set-proxy-server関数, 5.8.2 set-variable関数, 5.12.11 snmp要素, 3.1.25 空白

obj.conf内, 4.6.6

ssl要素, 3.1.26 ssl3-tls-ciphers要素, 3.1.6, 3.1.27 ssl-logout関数, 5.4.5 ssl-session-cache要素, 3.1.28 stats要素, 3.1.29 stats-xml関数, 5.9.5 sticky-cookieパラメータ, 5.8.1 sticky-paramパラメータ, 5.8.1 文字列補間, A.4 文字列リテラル, A.3.3.1 strip-params関数, 5.3.6, 5.3.7 構文

obj.confのディレクティブ, 4.2

式, A.3.1

obj.confの編集, 4.6

T

タグ

Client, 4.3.3.1

Else, 4.3.3.2

ElseIf, 4.3.3.2

If, 4.3.3.2

オブジェクト, 4.3

thread-pool要素, 3.1.30, 3.1.31, 3.1.32, 3.1.33, 3.1.34 tildeokパラメータ, 5.4.4 time要素, 3.1.35 時刻書式文字列, C typeパラメータ, 5.5.40, 5.6, 5.7, 5.9 type-by-exp関数, 5.5.40 type-by-extension関数, 5.5.41

U

uc関数, A.3.6.13

unix-uri-clean関数, 5.4.6

uriパラメータ, 5.12.5, 5.12.6, 5.12.6, 5.12.6, 5.12.6, 5.12.6, 5.12.7, 5.12.7, 5.12.8, 5.12.8

URI変換, 4.5.3

urlパラメータ, 5.12.3

url-prefixパラメータ, 5.12.3

UseOutputStreamSizeパラメータ, 5.9

util_strftime, C

uuid関数, A.3.6.15

V

変数要素, 3.1.36

変数, A.2

カスタム, A.2.2

式, A.3.4

補間文字列, A.4.1

事前定義済, A.2.1

解決, A.2.3

set-variableによるサポート, 5.12.11

verifycertプロパティ, 1.1.3.2 virtual-server要素, 3.1.37, 3.1.38

W

週日, C

オラクルの法律上の注意点について

コピーライトについて

Copyright © 1994-2016, Oracle and/or its affiliates.All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

アルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のアルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが非公開の試作版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のベータ・トライアル契約のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle PartnerNetwork Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティについて

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。