この章では、Oracle Web Cacheを使用した一般的なデプロイメント・シナリオの構成方法について説明します。次のトピックが含まれます:
図10-1に、一般的なOracle Application Server構成内のOracle Web Cacheを示します。一連のOracle Web Cacheサーバーが、一連のWebアプリケーション・サーバーのコンテンツをキャッシュに格納します。Webアプリケーション・サーバーapp1-host1
およびapp1-host2
がサイトwww.app1.company.com
のコンテンツを提供し、app2-host
がwww.app2.company.com
のコンテンツを提供します。2つのOracle Web Cacheサーバーは、1つまたは2つの高速CPUを搭載した専用のコンピュータ上で実行されています。Webサイトの可用性および容量を高めるために、これらのサーバーはキャッシュ・クラスタまたはフェイルオーバー・ペアのいずれかとして構成されています。
キャッシュの状態をチェックするために、ハードウェア・ロード・バランサが各Oracle Web Cacheサーバーを定期的にpingするように設定することをお薦めします。
キャッシュ・クラスタとして機能する場合、2つのOracle Web Cacheサーバーは、障害検出とフェイルオーバーを実現します。Oracle Web Cacheサーバーの1つで障害が発生した場合、キャッシュ・クラスタの他のメンバーがその障害を検出し、障害の発生したクラスタ・メンバーにキャッシュされたコンテンツの所有権を引き継いで、キャッシュの障害を隠します。Oracle Web Cacheは、キャッシュ障害の影響を受けない、コンテンツを格納する1つの仮想キャッシュを保持できます。ロード・バランサは、キャッシュ・クラスタ・メンバーに受信リクエストを分散します。キャッシュ・クラスタのメンバーは受信したリクエストを処理します。キャッシュに格納されていないリクエストを受信した場合、Oracle Web Cacheは、サイトに対応するそれぞれのWebアプリケーション・サーバーにリクエストを分散します。
フェイルオーバー・ペアとして機能する場合は、両方のOracle Web Cacheサーバーが同じコンテンツをキャッシュするよう構成されます。両方のOracle Web Cacheサーバーが稼働中のときは、ロード・バランサによって負荷が2つのサーバーに分散されます。1つのサーバーに障害が発生すると、もう1つのサーバーがすべてのリクエストを受信し、処理します。
このトポロジを構成するには、次の手順を実行します。
ロード・バランサのIPアドレスをwww.app1.company.com
およびwww.app2.company.com
に登録します。
ロード・バランサに、Oracle Web Cacheサーバーのホスト名webche1-host
およびwebche2-host
を構成します。また、各キャッシュ・サーバーを定期的にpingしてキャッシュの状態をチェックするようにロード・バランサを構成します。
キャッシュに格納されているURL /_oracle_http_server_webcache_static_.html
で各Oracle Web Cacheサーバーを定期的にpingするように、ロード・バランサを構成します。
キャッシュ・クラスタを構成する場合は、クラスタ・メンバーとしてwebche1-host
およびwebche2-host
を指定します。
キャッシュ・クラスタの構成方法の詳細は、第3.6項 を参照してください。
Oracle Web Cacheサーバーを次のように構成します。
指定したリスニング・ポートでHTTPリクエストおよびHTTPSリクエストを受信します。
HTTPリクエストおよびHTTPSリクエストを、指定したリスニング・ポートからWebアプリケーション・サーバーapp1-host1
、app1-host2
およびapp2-host
に送信します。
app1-host1
およびapp1-host2
にマップされているサイトwww.app1.company.com
を定義します。
app2-host
にマップされているサイトwww.app2.company.com
を定義します。
詳細は、次を参照してください。
Webサイトの多くには、複数のデータ・センターが存在します。分散トポロジのネットワークでは、各データ・センターのOracle Web Cacheを分散キャッシュ階層に配置できます。図10-2は、Oracle Web Cacheサーバーが米国と日本のオフィスに分散された分散トポロジを示しています。Webアプリケーション・サーバーが米国のオフィスに配置され、データ・ソースが地理的に1箇所に集中化されています。米国にある集中キャッシュがWebアプリケーション・サーバーapp1-host1
、app2-host2
およびapp2-host
のコンテンツをキャッシュし、日本にあるリモート・キャッシュは集中キャッシュのコンテンツをキャッシュします。
クライアントは、ローカルのDNSサーバーにwww.app1.company.com
およびwww.app2.company.com
の解決をリクエストします。ローカルのDNSサーバーは、各サイトの上位のDNSサーバーにルーティングされます。上位のDNSサーバーは、クライアントのIPアドレスを使用して、リクエストを処理するための最も近いOracle Web Cacheサーバーを選択します。その後、適切なOracle Web CacheサーバーのIPアドレスをクライアントに返します。
このトポロジを構成するには、次の手順を実行します。
ロード・バランサのIPアドレスをwww.app1.company.com
およびwww.app2.company.com
に登録します。
ロード・バランサに、Oracle Web Cacheサーバーのホスト名us.webche1-host
およびus.webche2-host
を構成します。また、各キャッシュ・サーバーを定期的にpingしてキャッシュの状態をチェックするようにロード・バランサを構成します。
Oracle Web Cacheサーバーus.webche1-host
およびus.webche1-host
を次のように構成します。
指定したリスニング・ポートでHTTPリクエストおよびHTTPSリクエストを受信します。
HTTPリクエストおよびHTTPSリクエストを、指定したリスニング・ポートからWebアプリケーション・サーバーapp1-host1
、app1-host2
およびapp2-host
に送信します。
app1-host1
およびapp1-host2
にマップされているサイトwww.app1.company.com
を定義します。
app2-host
にマップされているサイトwww.app2.company.com
を定義します。
Oracle Web Cacheサーバーjp.webche-host
を次のように構成します。
指定したリスニング・ポートでHTTPリクエストおよびHTTPSリクエストを受信します。
HTTPリクエストおよびHTTPSリクエストを、指定したリスニング・ポートからWebアプリケーション・サーバーus.webche1-host
およびus.webche2-host
に送信します。
app1-host1
およびapp1-host2
にマップされているサイトwww.app1.company.com
を定義します。
app2-host
にマップされているサイトwww.app2.company.com
を定義します。
キャッシュ階層内の各キャッシュに対する無効化メッセージの伝播を有効化します。
次の場所にあるwebcache.xml
をテキスト・エディタで開きます。
(UNIX) ORACLE_INSTANCE/<instance_name>/config/WebCache/<webcache_name> (Windows) ORACLE_INSTANCE\<instance_name>\config\WebCache\<webcache_name>
ENABLEINBOUNDICC
属性とENABLEOUTBOUNDICC
属性をYES
に変更します。次に例を示します。
<?xml version="1.0" encoding='ISO-8859-1'?>
<CALYPSO ... >
<VERSION DTD_VERSION="11.1.1.0.0"/>
<GENERAL>
<CLUSTER NAME="WebCacheCluster" ... />
<SECURITY SSLSESSIONTIMEOUT="3600" ... >
<USER TYPE="INVALIDATION" ... />
<USER TYPE="MONITORING" ... />
<SECURESUBNET ALLOW="ALL"/>
<DEBUGINFO HEADER="YES" ... />
<HTTPREQUEST MAXTOTALHEADERSIZE="819000" ... />
<INTERCACHE ENABLEINBOUNDICC="YES" ENABLEOUTBOUNDICC="YES"/>
</SECURITY>
...
webcache.xml
を保存します。
次のコマンドを使用して階層内のキャッシュを再起動します。
opmnctl restartproc ias-component=component_name
この実行可能ファイルは次のディレクトリにあります。
(UNIX) ORACLE_INSTANCE/bin (Windows) ORACLE_INSTANCE\bin
詳細は、次を参照してください。
リスニング・ポートの構成方法の詳細は、第2.11.1項を参照してください。
オリジン・サーバー設定の構成方法の詳細は、第2.11.2項を参照してください。
サイト定義およびサイトからサーバーへのマッピングの作成方法は、第2.11.3項を参照してください。
階層内での無効化の仕組みについては、第7.10.2.2項を参照してください。
次のように構成することにより、ハードウェア・ロード・バランサを使用せずにOracle Web Cacheで高可用性を実現できます。
HTTPトラフィックのソフトウェア・ロード・バランサ専用またはオリジン・サーバーへの リバース・プロキシ専用としてのOracle Web Cache
このオプションを使用して、1つまたは複数のキャッシュをロード・バランシングまたはリバース・プロキシ・サポート専用に構成します。
このオプションを使用して、複数のキャッシュ間で受信リクエストのロード・バランシングを行うようにオペレーティング・システムを構成します。オペレーティング・システムがあるキャッシュで障害を検出した場合は、自動IP引継ぎを使用して、クラスタ構成内の残りのキャッシュに負荷を分散します。この機能は、Linux、Windows 2000 Advanced Server、Windows 2000 Datacenter ServerおよびWindows 2003(すべてのEdition)など、多くのオペレーティング・システムでサポートされています。