6.2.1 インプロセスHTTPサーバの使用
インプロセスHTTPサーバは,J2EEサーバのプロセス内で提供されるWebサーバ機能です。
Webサーバを経由しないで,HTTPリクエストをJ2EEサーバのプロセスが直接受信することによって,Webサーバ連携時よりも優れた処理性能でWebサーバの機能を利用できます。このため,性能を重視したシステムでは,インプロセスHTTPサーバを使用することを推奨します。
ただし,HTTP ServerおよびMicrosoft IISと比べて提供機能に差異があるため,機能差異を確認した上で,インプロセスHTTPサーバを使用するかどうか検討してください。また,インプロセスHTTPサーバとWebサーバ連携機能を同時に使用することはできません。システム設計時に,あらかじめどちらの機能を使用するか選択しておく必要があります。
なお,インプロセスHTTPサーバを使用する場合,次のことが前提となります。
-
インプロセスHTTPサーバは不正アクセスが想定される外部ネットワークからのアクセスが可能なDMZに配置しないで,ファイアウォール内の内部ネットワークに配置する必要があります。インターネットなどの外部ネットワークからアクセスされるシステムでは,DMZにプロキシサーバを配置して,内部ネットワークのインプロセスHTTPサーバに転送するようにシステムを構築する必要があります。
-
インプロセスHTTPサーバでは,HTTPだけがサポートされています。HTTPSはサポートされていません。HTTPSを使用する場合,SSLアクセラレータ,またはHTTP Serverのリバースプロキシを使用することが前提となります。
-
インプロセスHTTPサーバを使用してアクセスできるのは,J2EEサーバ上にデプロイされたWebアプリケーションだけです。なお,静的コンテンツだけをデプロイすることはできませんが,リダイレクトによるリクエストの振り分け,およびエラーページのカスタマイズを実行する場合だけ,Webアプリケーションに含まれない静的コンテンツを指定できます。
また,インプロセスHTTPサーバを使用する場合,次のことに注意してください。
-
WebクライアントとインプロセスHTTPサーバとのTCPコネクションの接続中に,cjstopsvコマンドを実行してJ2EEサーバを停止した場合,WebクライアントがインプロセスHTTPサーバとのTCPコネクションを切断するか,usrconf.properties(J2EEサーバ用ユーザプロパティファイル)のwebserver.connector.inprocess_http.persistent_connection.timeoutキーで指定するタイムアウトが発生するまで,J2EEサーバが停止しません。WebクライアントからのTCPコネクション切断や,タイムアウト時間に関係なくJ2EEサーバを停止したい場合は,cjstopsvコマンドに「-f」オプションを指定してJ2EEサーバを強制停止してください。
-
リクエストヘッダに含まれる次のヘッダは非サポートです。※1
-
Cookie2
-
Expect※2
-
Keep-Alive
-
Trailer
- 注※1
-
インプロセスHTTPサーバではヘッダを読み込みますが,非サポートのヘッダの名前や値に応じた個別の処理はしないで,そのままJ2EEアプリケーションの処理を継続します。
- 注※2
-
Expectヘッダの値が""100-continue""のリクエストを受信した場合,HTTPステータスコード100のレスポンスを返さないで,そのままJ2EEアプリケーションの処理を継続します。
-
-
リクエストヘッダに含まれるCookieヘッダの値が""(ダブルクォーテーション)で囲まれている場合,""(ダブルクォーテーション)も値の一部として扱います。
-
リクエストヘッダに含まれるTransfer-Encodingヘッダの値の""gzip""は非サポートです。受信したリクエストのTransfer-Encodingヘッダの該当する値は無視します。
インプロセスHTTPサーバの設定は,J2EEサーバのプロパティをカスタマイズして設定します。J2EEサーバの動作設定のカスタマイズについては,「6.2.3 実行環境での設定(J2EEサーバの設定)」を参照してください。
- ポイント
-
インプロセスHTTPサーバは,デフォルトでは使用しない設定になっています。