前へ 目次 索引 次へ
Sun ONE Application Server 7 管理者ガイド

> ## 第 7 章
> Web サーバープラグインの設定

> この章では、Sun ONE Application Server による HTTP (HyperText Transfer Protocol) 要求の処理方法と、Sun ONE Application Server による Web サーバープラグインの設定方法および使用方法を説明します。また、Web サーバープラグインと Microsoft IIS および Apache Web サーバーの併用について、およびその設定方法についても説明します。

> この章では次のトピックについて説明します。

> - Web サーバープラグインについて
> - クライアント要求の処理
> - Web サーバープラグインの設定
> - Web サーバープラグインの SAF
> - Web サーバープラグインの使用
> - Web サーバープラグインを使用するための Microsoft IIS の設定
> - Apache Web Server の設定

> ##

> Web サーバープラグインについて

> HTTP リバースプロキシプラグインを使うことで、ユーザーから Sun ONE Web Server または Sun ONE Application Server に指示を送り、特定の HTTP 要求を別のサーバーへ転送することができます。たとえば、特定の Web アプリケーションの要求を、インターネットに接続した Web サーバーから企業内のファイアウォールに転送するような設定が可能です。

> Sun ONE Application Server 内では、Web サーバープラグインにより、1 つのサーバーインスタンスから別のサーバーインスタンスに HTTP (Web) 要求を転送できます。

> Web サーバープラグインの機能は次のとおりです。

> - プロキシサーバーからの接続をできるかぎり再利用する。これにより、着信要求を処理する際、新しい接続を確立する必要がなくなる
> - Web サーバープラグインは、受信を開始した時点で、要求と応答のストリーミングを開始する。つまり、要求または応答が完全に収集された後に、これらをリモートサーバーへ転送する
> - Web サーバープラグインは、同一リモートサーバーへの複数の送信 HTTP 接続を適切に管理する。Web サーバープラグインによる要求の転送用として確立された接続を「送信 HTTP 接続」と呼ぶ

> Web サーバープラグインの機能を理解するためには、HTTP 要求の基礎知識、とりわけ Sun ONE Application Server が HTTP 要求を処理する方法を理解しておく必要があります。

> ##

> クライアント要求の処理

> Sun ONE Application Server はHTTP 要求を直接受け入れ、それに応答できるアプリケーションサーバーです。この節では、HTTP の基本的な概念と、Sun ONE Application Server が要求をどのように処理するかについて説明します。この節には次の項目があります。

> - HTTP の基礎知識
> - 要求処理プロセスの手順

> ### HTTP の基礎知識

> HTTP/1.1 プロトコルの機能を簡単にまとめます。

> - クライアント (通常はブラウザ) はサーバーとの接続を確立し、要求を送信する
> - サーバーは要求を処理し、応答を生成する。さらにConnection: Close ヘッダーを検出すると接続を終了する

> 要求は、GET、POST などのメソッドを指定する行、要求の対象となるリソースを示す URI (Universal Resource Identifier)、および HTTP プロトコルのバージョンを空白文字で区切った形式になります。

> 通常は、このあとに多数のヘッダー、ヘッダーの終わりを表す空白行が続き、さらに本文データが含まれる場合もあります。ヘッダーは、要求またはクライアントの本文データに関するさまざまな情報を提供します。一般に、ヘッダーは、POST メソッドと PUT メソッドにのみ送信されます。

> 次の例では、ブラウザがサーバー foo.com に要求を送信し、/index.html のリソースが返されます。この例では、本文データは送信されません。これは、要求のデータを取得するだけで送信しない GET メソッドが使用されているからです。

> GET /index.html HTTP/1.0 User-agent:Mozilla Accept: text/html, text/plain, image/jpeg, image/gif, */* Host:foo.com

> サーバーは要求を受信し、処理します。サーバーは複数の要求を同時に処理できるにもかかわらず、各要求を個別に処理します。各要求は、要求処理プロセスを設定する一連の手順に分割されます。

> サーバーは、HTTP プロトコルのバージョン、HTTP 状態コード、および原因フレーズを空白文字で区切った形式で応答を生成します。通常は、このあとに多数のヘッダーが続きます。ヘッダーの終わりは空白行で表されます。そのあとに、応答の本文データが続きます。次に典型的な HTTP 応答を紹介します。

> HTTP/1.0 200 OK Server:Standard/7.0 Content-type:text/html Content-length: 83 <HTML> <HEAD><TITLE>Hello World</Title></HEAD> <BODY>Hello World</BODY> </HTML>

> 状態コードと原因フレーズから、サーバーが要求をどのように処理したかがわかります。通常は、要求の処理に成功したことを表す状態コード 200 が返されます。この場合、本文データには要求された項目が含まれます。別のサーバーまたはブラウザキャッシュへのリダイレクト、さまざまな種類の HTTP エラー (「404 Not Found」など) を表す結果コードが返されることもあります。

> ### 要求処理プロセスの手順

> Sun ONE Application Serverは、初期起動時に特定の初期化タスクを実行します。その後、ブラウザなどのクライアントからの HTTP 要求を待機します。要求を受信すると、最初に仮想サーバーを選択します。

> 仮想サーバーを選択すると、仮想サーバーの obj.conf ファイルにより、次の手順に従って要求の処理方法が指定されます。

> 1. AuthTrans (承認変換)

> 要求とともに送信される承認情報 (名前、パスワードなど) を検証する

> 2. NameTrans (名前変換)

> 論理 URI をローカルファイルシステムのパスに変換する

> 3. PathCheck (パスチェック)

> ローカルファイルシステムのパスの妥当性検査を実施し、要求元がこのファイルシステム上の所定のリソースに対してアクセス権を持っていることを確認する

> 4. ObjectType (オブジェクト型の識別)

> 要求されたリソースの MIME (Multi-purpose Internet Mail Encoding) 型を特定する。たとえば、text/html、image/gif などの MIME 型がある

> 5. Service (応答の生成)

> 応答を生成し、クライアントに返す

> 6. AddLog (ログエントリの追加)

> ログファイルにエントリを追加する

> 7. Error (サービス)

> 前の手順でエラーが発生した場合にのみ実行される手順。エラーが発生した場合、サーバーはログにエラーメッセージを記録し、プロセスを中止する

> ##

> Web サーバープラグインの設定

> Web サーバープラグインの設定と動作は、一組の設定ファイルで決定されます。Sun ONE Application Serverは、クライアントからの要求を処理する際、毎回これらのファイルに定義された設定情報を参照します。設定ファイルは、obj.conf と init.conf です。obj.conf ファイルは、たとえば server1-obj.conf のように、仮想サーバーの名前が最初につけられます。詳細については、「obj.conf ファイル」を参照してください。

> Sun ONE の各インスタンスは、サーバーが起動時に参照する固有の init.conf ファイルを持ちます。

> 前の項目で説明したように、obj.conf 設定ファイルには、クライアントからの要求とこれに対する応答処理の各段階で実行する内容を、Sun ONE Application Serverに指示する一連の指令が格納されています。各指令は、SAF (Server Application Function) を呼び出します。

> Sun ONE Application Server の操作には、obj.conf ファイルが必要です。管理インタフェースを使ってサーバーに変更を加えると、システムにより、obj.conf が自動的に更新されます。

> init.conf 設定ファイルは、初期化の際に、サーバーを設定する変数値を設定します。サーバーは、起動時に、このファイルに指定されている設定パラメータを実行します。詳細については、『Sun ONE Application Server 管理者用設定ファイルリファレンス』を参照してください。

> 次の図は、Web ブラウザ、フロントエンドの Web サーバー、バックエンドのアプリケーションサーバー、および Web サーバープラグインの service-passthrough と auth-passthrough SAF の関係を示しています。

> 図 7-1 Web ブラウザ、Web サーバー、アプリケーションサーバー、Web サーバープラグイン SAF の関係

> ##

> Web サーバープラグインの SAF

> この節では、次の SAF (Server Application Functions) の機能と動作を説明します。

> - init-passthrough
> - auth-passthrough
> - service-passthrough
> - check-passthrough

> ### init-passthrough

> init-passthrough 機能は、Web サーバープラグインを初期化します。この関数は、Web サーバープラグインの使用を開始する前に呼び出す必要があります。

> 例

> Init fn="load-modules" shlib="c:/plugins/passthrough.dll" funcs="init-passthrough,auth-passthrough,check-passthrough,service- passthrough" NativeThread="no"

> Init fn="init-passthrough"

> ### auth-passthrough

> auth-passthrough SAF は、AuthTrans-class 指令に適用されます。

> auth-passthrough 機能は、中間サーバー上で実行されている server-passthrough 機能によってコード化された、クライアント情報を求める着信 HTTP (Web) 要求を検査します。次のようなクライアント情報があります。

> - 要求の発信元の IP アドレス
> - 発信元クライアントで使用される SSL キーサイズ
> - 発信元クライアントから提供される SSL クライアント証明書

> auth-passthrough は、コード化されたクライアント情報を検出すると、着信要求が service-passthrough を実行している中間サーバーから転送されたものではなく、送信元クライアントから直接送信されたものとみなします。

> これは、次のような 2 層配備のシナリオで便利です。

> - Sun ONE Application Serverインスタンスが、企業のファイアウォールの背後に配置された 2 番目のファイアウォールによって保護されている
> - クライアントが S1AS インスタンスに直接接続することが許可されていない

> そのようなネットワークアーキテクチャの場合、クライアントは必ず、プロキシプラグインが動作しているフロントエンドの Web サーバーに接続します。この Web サーバーは、要求を Sun ONE Application Server に転送します。したがって、Sun ONE Application Server が要求を受信できるのは、プロキシのホスト (ここでは Web サーバー) からだけであり、クライアントのホストから直接受信することはできません。これは、2 つのファイアウォールの背後に存在する Sun ONE Application Server インスタンス上に配備されたアプリケーションがクライアントの情報 (クライアントの IP アドレスなど) に対してクエリを実行すると、そのアプリケーションは、実際に要求を中継したホストであるプロキシホストの IP アドレスを取得することを意味しています。auth-passthroughSAF を使用すれば、代わりにリモートの (プロキシを介して) クライアント情報が返されるようにこの動作を変更することができます。

> auth-passthrough は認証に使用できる情報 (要求の送信元の IP アドレスなど) を上書きできるので、信頼できるクライアントまたはサーバーだけに auth-passthrough を実行しているサーバーへの接続を許可することが重要です。予防措置として、auth-passthrough は、企業のファイアウォールで保護されているサーバーだけで実行することをお勧めします。インターネット経由でアクセスできるサーバーで、auth-passthrough SAF の実行を許可しないでください。auth-passthrough SAF は、発信元のクライアントに直接関連する情報が必要な場合にのみ使用してください。

> 上記のシナリオの場合、SSL クライアント認証を有効にできるのは Web サーバーに対してのみである点に注意してください。設定が正しく動作するようにするには、アプリケーションサーバーに対しては常に無効にします。

> コマンドの例

> AuthTrans fn="auth-passthrough"

> ### service-passthrough

> service-passthrough SAF は、Service-class 指令に適用されます。

> service-passthrough SAF は、処理する要求をサーバーからサーバーへ転送します。service-passthrough SAF の設定により、要求の受信に使用された接続の種類に関係なく、リモートサーバーへの SSL 接続または SSL 以外の接続 (HTTPS または HTTP) を使用できます。service-passthrough SAF は、送信元クライアントに関する情報をコード化します。この情報は、リモートサーバー上で実行されている auth-passthrough によって復号化できます。

> 通常、service-passthrough 指令は、obj.conf 設定ファイル内でその他の指令と組み合わせて使用されます。次の例を参照してください。

> <Object name="passthrough">

> ObjectType fn="force-type" type="magnus-internal/passthrough"

> Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"

> </Object>

> <Object name="default">

> ....

> NameTrans fn="assign-name" from="(/webapp1|/webapp1/*)" name="passthrough"

> ...

> </Object>

> バックエンドアプリケーションサーバーがダウンしている場合は、ユーザーには代わりにローカルの HTML ファイル badgateway.html が表示されます。service-passthrough SAF を実行しているサーバーが、アクセス権を持っているファイルを提供し、拒否された要求だけをバックエンドアプリケーションに転送する必要がある場合は、ObjectType 行を次のように変更します。

> ObjectType fn="check-passthrough" type="magnus-internal/passthrough"

> ### check-passthrough

> check-passthrough SAF は、ObjectType-class 指令に適用されます。

> check-passthrough 関数は、要求されたリソース (HTML ドキュメント、GIF イメージなど) がローカルサーバー上で使用可能であるかどうかを確認します。要求されたリソースがローカルに存在しない場合、check-passthrough SAF は、要求を別のサーバーに転送し、service-passthrough SAF で処理することを示す型を設定します。

> パラメータ:

> type - (オプション) 要求されたリソースが存在しない場合に設定される型。デフォルトは magnus-internal/passthrough

> 例

> ObjectType fn="check-passthrough"

> ##

> Web サーバープラグインの使用

> Sun ONE Web Server で Web サーバープラグインを使用するには、Sun ONE Application Server と Sun ONE Web Server の両方の設定ファイルを変更する必要があります。この節に記述されている手順に従って、次の Sun ONE Web Server プラグインを設定し使用します。

> - Sun ONE Web Server の変更
> - Sun ONE Application Server の変更

> ### Sun ONE Web Server の変更

> これらのファイルを変更する前に、magnus.conf や obj.conf などの重要な設定ファイルをバックアップします。

> 1. passthrough プラグインを含める Web サーバーのインストール領域にディレクトリを作成します。次に例を示します。

> cd /webserver_install_dir/plugins

> mkdir -p passthrough/bin

> 2. passthrough プラグインを Sun ONE Application Server のインストールからこの新規に作成した Web サーバーディレクトリにコピーします。次に例を示します。

> cd appserver_install_dir/lib

> cp libpassthrough.so webserver_install_dir/plugins/passthrough/bin

> Windows では、passthrough.dll ファイルをコピーします。

> 3. webserver_install_dir/https-host.domain/config の下にある magnus.conf ファイルを編集し、次の行を追加します。

> Init fn="load-modules" shlib="webserver_install_dir/plugins/passthrough/bin/libpassthrough.so" funcs="init-passthrough,auth-passthrough,check-passthrough,service-passthrough" NativeThread="no"

> Init fn="NSServletEarlyInit" EarlyInit=yes

> Init fn="NSServletLateInit" LateInit=yes

> Init fn="init-passthrough"

> 4. webserver_install_dir/https-host.domain/config の下にある obj.conf ファイル を編集し、NameTrans 指令を次のように追加します。

> <Object name="default" >
> NameTrans fn="NSServletNameTrans" name="servlet"
> NameTrans fn="assign-name" from="/*" name="passthrough"
> </Object>

> from="/*" uri はリモートサーバー上に配備された Web アプリケーションのコンテキストルートです。passthrough は、obj.conf 内の <Object> の名前です。

> 次に例を示します。

> <Object name="default">
> ...
> NameTrans fn="assign-name" from="(/webapp1|/webapp1/*)" name="passthrough"
> ...
> </Object>

> 5. obj.conf ファイルに次の行を追加します。

> <Object name="passthrough">
> ObjectType fn="force-type" type="magnus-internal/passthrough"
> PathCheck fn="deny-existence" path="*/WEB-INF/*"
> Service type="magnus-internal/passthrough" fn="service-passthrough"
> servers="http://servername:port"
> Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
> </Object>

> 6. Sun ONE Web Server インスタンスを再起動します。

> 次に、要求を Web サーバープラグインに配信するよう Sun ONE Web Server を設定します。

> ### Sun ONE Application Server の変更

> これらのファイルを変更する前に、magnus.conf や obj.conf などの重要な設定ファイルをバックアップします。

> 1. install_dir/domains/domain1/server1/config/init.conf ファイルを編集し、次の行を追加します。

> UNIX:

> Init fn="load-modules" shlib="webserver_install_dir/plugins/passthrough/bin/libpassthrough.so"
> funcs="init-passthrough,auth-passthrough,check-passthrough,service-passthrough" NativeThread="no"
> Init fn="init-passthrough"

> Windows:

> Init fn="load-modules" shlib="c:/install_dir/bin/passthrough.dll" funcs="init-passthrough,auth-passthrough,check-passthrough, service-passthrough" NativeThread="no"
> Init fn="init-passthrough"

> 2. install_dir/domains/domain1/server1/config/server1-obj.conf を編集し、次のように AuthTrans 指令を追加します。

> <Object name="default">
> AuthTrans fn="match-browser" browser="*MSIE*" ssl-unclean-shutdown="true" AuthTrans fn="auth-passthrough"
> fn="service-passthrough" servers="server"
> Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
> </Object>

> server は、次の形式で記述した URL を意味します。

> http://servername:port

> 3. Sun ONE Application Server インスタンスを再起動します。

> Sun ONE Application Server に必要な変更が完了しました。前節の手順は、アプリケーションサーバーの単一インスタンスを設定するためのものです。複数のインスタンスで Web サーバープラグインを使用できるようにするには、それらのアプリケーションサーバーインスタンスの設定ファイルで同様な変更を行う必要があります。

> 注 | プラグインライブラリの名前は、Solaris および Linux では libpassthrough.so です。Windows では、passthrough.dll です。

> ##

> Web サーバープラグインを使用するための Microsoft IIS の設定

> Web サーバープラグインと併用する場合の Microsoft Internet Information Services の設定には、Microsoft IIS を使用するための Web サーバープラグインの設定と、Web サーバープラグインを使用するための Microsoft IIS の設定が含まれます。

> サーバープールを設定し、別のサーバー上で稼働する複数のアプリケーションを扱うこともできます。

> この節では次の項目について説明します。

> - IIS 用に Web サーバープラグインを設定
> - Web サーバープラグイン用に IIS を設定
> - 複数のサーバープールの設定
> - sun-passthrough プロパティファイルの例

> ### IIS 用に Web サーバープラグインを設定

> IIS 用に Web サーバープラグインを設定するには、次の手順を実行します。

> 1. C:¥ のコマンド行プロンプトで次のコマンドを実行し、IIS の wwwroot ディレクトリの下に Web サーバープラグインのディレクトリを作成します。

> md ¥Inetpub¥wwwroot¥sun-passthrough

> 2. プラグインファイルを C:¥Inetpub¥wwwroot¥sun-passthrough ディレクトリにコピーします。
> 3. テキストエディタを使って、Sun ONE Application Serverがインストールされているマシンの URL を C:¥Inetpub¥wwwroot¥sun-passthrough¥sun-passthrough.properties ファイルに追加します。

> テキストエディタを使って、次の情報を追加する必要があります。

> server=http://appservername:port

> appservername は Sun ONE Application Serverがインストールされているマシンのホスト名または IP アドレス、port はそのマシンが待機しているポートの番号です (通常は 80)。

> 4. Sun ONE Application Serverに処理させるコンテキストルートを C:¥Inetpub¥wwwroot¥sun-passthrough¥sun-passthrough.properties ファイルに追加します。

> これらのコンテキストルートは、Sun ONE Application Serverに配備したアプリケーションのコンテキストルートに対応している必要があります。これらのコンテキストルートに対する要求は Sun ONE Application Serverによって処理され、その他の要求は IIS Web サーバーによって処理されます。要求を Web アプリケーションに渡すコマンド行は、次のとおりです。

> passthrough=/webapplication

> /webapplication は Web アプリケーションのコンテキストルートです。すべての要求を Sun ONE Application Serverに渡すには、次の行を追加します。

> passthrough=/

> これで、Microsoft IIS のルートディレクトリに Web サーバープラグインを設定できました。プロセスを完了するには、次に Web サーバープラグインを使えるように Microsoft IIS を設定します。

> ### Web サーバープラグイン用に IIS を設定

> Web サーバープラグイン用に IIS を設定するには、Windows のインターネットサービスマネージャを開く必要があります。インターネットサービスマネージャは、「コントロールパネル」フォルダ内の「管理ツール」フォルダにあります。

> インターネットサービスマネージャを開き、次のタスクを実行します。

> 1. プラグインを有効にする Web サイトを選択します。Web サイトの名前は、通常は 既定のWebサイトです。
> 2. Web サイトを右クリックし、「プロパティ」をクリックして「プロパティ」ノートブックを開きます。
> 3. 「ISAPI フィルタ」タブを開き、「追加」ボタンをクリックします。次の手順に従って新しい ISAPI フィルタを追加します。
> 1. 「フィルタ名」フィールドに Sun ONE Application Serverと入力します。
> 2. 「実行ファイル」フィールドに C:¥Inetpub¥wwwroot¥sun-passthrough¥sun-passthrough.dll と入力します。
> 3. 「OK」をクリックし、「プロパティ」ノートブックを閉じます。
> 4. 次に、新しい仮想ディレクトリを作成し、設定します。次の手順に従って、仮想ディレクトリを新規作成し、設定してください。
> 1. 既定のWebサイトを右クリックし、「新規」、「仮想ディレクトリ」を順にクリックします。「仮想ディレクトリの作成ウィザード」が開きます。
> 2. 「エイリアス」フィールドに sun-passthrough と入力します。
> 3. 「ディレクトリ」フィールドに C:¥Inetpub¥wwwroot¥sun-passthrough と入力します。
> 4. 実行権限のボックスにチェックマークをつけ、それ以外のすべてのパーミッションボックスのチェックマークを外します。
> 5. 「完了」をクリックします。
> 5. 新しい設定を適用するには、Web サーバーを停止し、起動しなおす必要があります。Web ブラウザを停止するには、Web サイトを右クリックし、「停止」を選択します。Web ブラウザを起動するには、Web サイトを右クリックし、「起動」を選択します。

> Web ブラウザに次のように入力し、Web アプリケーションのコンテキストルートにアクセスします。

> http://webservername/webapplication

> webservername は Web サーバーのホスト名または IP アドレスです。/ webapplication は C:¥Inetpub¥wwwroot¥sun-passthrough¥sun-passthrough.properties に指定したコンテキストルートで、Web サーバー、Web サーバープラグイン、および Sun ONE Application Serverの正常な動作の検証に使われます。

> ### 複数のサーバープールの設定

> sun-passthrough.properties ファイルに複数サーバープールを設定することで、Web アプリケーションを複数のアプリケーションサーバーに区切ることができます。これにより、一部のアプリケーションを一部のサーバーセットで実行し、別のアプリケーションを別のサーバーセットで実行できます。各サーバープールには、アルファベットと数字を使って他と重複しない名前をつけます。「Web サーバープラグインを使用するための Microsoft IIS の設定」で説明した方法で Microsoft IIS 用に Web サーバープラグインをインストールおよび設定したら、C:¥Inetpub¥wwwroot¥sun-passthrough¥sun-passthrough.properties ファイルを開き、関連する server プロパティと passthrough プロパティの行に、サーバープールにつけた一意の名前を追加します。サーバープール名の後にはピリオド (.) をつけます。

> たとえば、sun-passthrough.properties ファイルの次の行は、2 つのサーバープールを定義しています。最初のサーバープールは server-a と、コンテキストルート /app1 のサービス要求から構成されます。もう一方のサーバープールは server-b と、コンテキストルート /app2 および /app3 のサービス要求から構成されます。

> server=http://server-a

> passthrough=/app1

> serverpool2.server=http://server-b

> serverpool2.passthrough=/app2

> serverpool2.passthrough=/app

> ### sun-passthrough プロパティファイルの例

> # Sun ONE Application Server Web サーバープラグイン (IIS 用)

> #

> # このファイルは、IIS 用の Sun ONE Application Server Web サーバープラグインの設定に使い

> # ます。「#」から始まる行は無視されます。

> # server

> #

> # server プロパティは、アプリケーションサーバーの URL を指定します。

> # 複数の server プロパティを指定すると、プラグインは指定のアプリケーションサーバーに

> # 負荷を分散します。

> #

> server=http://localhost:8080

> # passthrough

> #

> # passthrough プロパティは、Web アプリケーションのコンテキストルート (仮想ディレクトリ) を

> # 指定します。指定したコンテキストルートの要求がアプリケーションサーバーに渡されて処理されます。

> # 「Passthrough=/」が指定されていると、すべての要求がアプリケーションサーバーに渡されて

> # 処理されます。

> #

> # passthrough プロパティを指定するときは、詳細なものから順に入力します。たとえば、

> # 「passthrough=/apps/app1」は「passthrough=/apps」の前に指定します。

> #

> # passthrough は、複数を指定できます。

> #

> #passthrough=/webapp

> #passthrough=/servlets

> #passthrough=*.jsp

> passthrough=/

> # prefix

> #

> # prefix プロパティは、プラグインの DDL ファイル (sun-passthrough.dll) を含む IIS 仮想

> # ディレクトリを指定します。

> #

> prefix=/sun-passthrough

> # error-url

> #

> # error-url プロパティでは、アプリケーションサーバーを利用できないときに

> # ページをリダイレクトする URL を指定します。

> #

> #error-url=/badgateway.htm

> # プール名のあとにピリオド ('.') を付けて、そのあとに server プロパティと passthrough

> # プロパティのそれぞれの名前を指定することで、複数のサーバープールを設定できます。

> # プールには、アルファベットと数字を使って自由に名前をつけられます。

> #

> # たとえば、次の例は 2 つのサーバープールを定義しています。

> # 一方のサーバープールは /app1 にある Web アプリケーションに対応し、もう一方は

> # /app2 と /app3 にあるアプリケーションに対応します。

> #

> #serverpool1.server=http://server-a

> #serverpool1.passthrough=/app1

> #

> #serverpool2.server=http://server-b

> #serverpool2.passthrough=/app2

> #serverpool2.passthrough=/app3

> ##

> Apache Web Server の設定

> ここでは、Apache のソースコードをコンパイルし、Sun ONE Application Server で動作するよう Apache Web サーバーのインストールを設定する方法について説明します。

> HTTP 要求を Sun ONE Application Server に送信できるようにするには、Apache ソースをコンパイルして mod_proxy モジュールを使用し、httpd.conf を修正します。

> この節では次の手順を説明します。

> - 最少要件
> - Apache を mod_proxy モジュール込みでコンパイル
> - httpd.conf ファイルの変更
> - Apache の起動と停止

> ### 最少要件

> Apache Web サーバーを正常にコンパイルして mod_proxy プラグインを使用するには、次の要件を満たしている必要があります。

> - apache_1.3.27 (ソース)
> - Sun の Solaris 8 および 9 用 C コンパイラ
> - インストール可能な Sun ONE Application Server 7
> - Solaris 8 および 9 で、CC と make が PATH 内にあることを確認します。

> ### Apache を mod_proxy モジュール込みでコンパイル

> 1. www.apache.org から最新の Apache ソースコードを組み込み mod_proxy モジュールとともにダウンロードします。

> ソースコードを解凍します。ソースコードは圧縮されたアーカイブとして提供されます。Apache 1.3.27 をインストールする場合、ソースコードのアーカイブ名は apache_1.3.27.tar.gz です。

> 2. 次のコマンドを使ってアーカイブを解凍します。

> $ tar -zxvf apache_1.3.27.tar.gz

> このコマンドにより、apache_1.3.27 という名前のディレクトリが、現在の作業ディレクトリ内に作成されます。

> 3. ここで、Apache のソースコードをコンパイルできるように環境を設定する必要があります。このソースコードには、configure という名前のスクリプトが付属しています。このスクリプトは、Apache を正しくコンパイルするのに必要なサポートファイル (ヘッダー、共有ライブラリ、ユーティリティプログラムなど) がユーザーの環境に含まれているかどうかをチェックするためのものです。

> 環境を設定するには、Apache ソースディレクトリに移動し、次の手順を実行します。

> 1. Apache を Solaris にインストールする場合、次のパスが存在していることを確認します。
> - CC=/opt/SUNWspro/bin/cc

> /opt/SUNWspro/bin は cc がインストールされているパスです。PATH がこのようになっていることを確認します。

> - /usr/ccs/bin が PATH 内に存在していることを確認します。
> 2. 次のコマンドを実行します。

> ./configure --enable-module=proxy --prefix=/usr/local/apache

> prefix 引数で指定したパスは、 Apache のインストール先を示します。これは変数なので、Apache をインストールするパスを指定できます。

> このコマンドを実行すると、画面上にメッセージが数行出力されます。本質的には、このコマンドはユーザーのシステム設定に応じたビルド用 Makefile を生成します。configure の実行時にエラーが発生した場合、ヘッダーファイルやユーティリティプログラムが不足している可能性があります。インストールしてから続行してください。

> 4. configure スクリプトの実行が正常終了したら、Apache をコンパイルできます。それには、次のように make コマンドを実行します。

> $ make

> このコマンドを実行すると、Apache ソースコードのコンパイルと Apache のリンクを実行中であることを示すメッセージが画面上に数行出力されます。通常、この処理でエラーは発生しません。エラーが発生した場合は、Apache のすべてのライブラリファイルとユーティリティプログラムが正しくダウンロードされたかどうかを確認してください。

> 5. ここで、Apache をインストールします。Apache のインストール先は、/usr/local/apache ディレクトリ (別のディレクトリを指定した場合はそのディレクトリ) になります。Apache をインストールするには、次のコマンドを実行します。

> $ make install

> このコマンドが正常に実行されると、システムに Apache がインストールされます。Apache のインストールファイルが次のディレクトリに格納されます。

> /usr/local/apache

> /usr/local/apache/ ディレクトリには、httpd.conf ファイルという名前の主要な設定ファイルがインストールされます。

> 注 | mod_proxy には Sun ONE Application Server 7 リバースプロキシプラグインの SSL 転送機能およびロードバランス機能はありません。また、mod_proxy を使用しているとき、Web アプリケーションがクライアントの IP アドレスまたは SSL クライアント認証を取得することはできません。

> ### httpd.conf ファイルの変更

> Apache の設定は、httpd.conf ファイルで行われます。このファイルには、Apache サーバーの各種操作パラメータを決定するいくつかの Apache 指令が記述されています。単純な Apache インストールの場合、変更する必要があるのは、次に示すわずかな指令だけです。

> ServerRoot "/usr/local/apache"
> Port 5000

> ServerRoot は Apache をインストールするパスです。

> これで、Apache はデフォルトの動作をし、Web サーバーとして機能するように設定されました。次のアプリケーションサーバー固有の指令を httpd.conf ファイルに追加し、Apache が HTTP 要求を Sun ONE Application Server に転送できるようにします。

> <IfModule mod_proxy.c>
> ProxyPass / http://<s1as_server.some.domain>:<port>/
> ProxyPassReverse / http://<s1as_server.some.domain>:<port>/
> </IfModule>

> <slas_server.some.domain>:<port> を Sun ONE Application Server の URL アドレスと置き換える必要があります。これらの 2 行を各 Web アプリケーションコンテキストルートごとに複製します。/application は Web アプリケーションコンテキストルートで、http:// server は Sun ONE Application Server の URL です。

> これで Apache Web サーバーの設定が完了しました。

> ### Apache の起動と停止

> Apache には apachectl という名前のスクリプトが付属しています。このスクリプトを使うと、Apache の起動、停止、および再起動が簡単に行えます。Apache を起動するには、次のコマンドを実行します。

> $ /usr/local/apache/bin/apachectl start

> Apache を停止するには、次のコマンドを実行します。

> use /usr/local/apache/bin/apachectl stop

> Apache の起動後に、Apache が正しくインストールされたかどうかをテストできます。Apache が起動したら、Web ブラウザでアドレス「http://localhost/」を入力します。Apache が正しくインストールされ、実行されている場合は、そのことを示すメッセージを含むテストページが表示されます。

> 前へ 目次 索引 次へ

> Copyright 2003 Sun Microsystems, Inc. All rights reserved.