ここでは、Webコンテナで適切にアプリケーションを実行できるようにするために必要な、ネットワークに関連する設定の概要を説明します。
同時処理数や接続数をチューニングすることにより、Webコンテナで処理するリクエストの数を制御することができ、処理の遅延や使用するメモリの増大に伴うプロセスダウンを防止することができます。
設定やチューニング方法は、以下を参照してください。
最大接続数(max-connections-count)
アクセプタースレッド数(acceptor-thread)
キューサイズ(max-queue-size)
最小プールサイズ(min-thread-pool-size)
最大プールサイズ(max-thread-pool-size)
アイドルタイムアウト(idle-thread-timeout-seconds)
不正なクライアントから送信されたリクエスト処理や情報漏えいを防ぐため、アクセス制限やレスポンスヘッダーの制限をかけることができます。
設定や対策方法は、以下を参照してください。
要求を受け付けるIPアドレス(allowRemoteAddress)
ネットワークアドレス(address)
Webコンテナへアクセスする運用形態(request-check)
X-Powered-By ヘッダーフィールド(xpowered-by)
大量のリクエストを処理する場合や、大きなデータがクライアントから送信された場合に、Webコンテナが処理できるように、適切にサイズ制限をかけることができます。
設定は、以下を参照してください。
POSTリクエストの最大サイズ(max-post-size-bytes)
HTTPリクエストパラメータ数の最大値(max-request-parameters)
受信バッファーサイズ(buffer-size-bytes)
なおサーブレットのファイルアップロード機能のサイズ制限は、web.xmlまたはサーブレットのアノテーションで行います。
各種タイムアウトを設定することにより、リクエストに対するスレッドの長期占有を防止することができます。
設定やチューニング方法は、以下を参照してください。
接続アップロードタイムアウト(connection-upload-timeout-millis)
送信タイムアウト(com.sun.grizzly.writeTimeout)
そのほかにも、Webコンテナでアプリケーションを処理する上で、同時に考慮すべきタイムアウトが存在します。
キープアライブのタイムアウト
アプリケーション最大処理時間
Webサーバコネクタの送受信タイムアウト
Webサーバの有無・負荷分散装置などの設定に応じて、キープアライブに関する設定をすることが可能です。なお、キープアライブは、デフォルトで無効になっています。
設定やチューニング方法は、以下を参照してください。
キープアライブのタイムアウト(timeout-seconds)
1回のコネクションで処理可能なリクエスト数(max-connections)