お久しぶりです、インフラ事業部の小田島です。
Tomcat 6のデフォルトのタイムアウトの設定を知りたくて、ネットサーフィンをしまくっていたのですが、見るサイト見るサイトで設定値が違っていたので、下記サイトを参考に、とりあえず、Connectorだけですが、抜粋で調べたものを、備忘録して記載していきます。
属性名
|
内容
|
デフォルト
|
---|---|---|
acceptCount
|
Tomcatにおけるリクエスト処理スレッドすべてが処理中である際に、さらに多くの接続要求がTomcatのサーバポートに到来している場合、1つ以上のスレッドが解放されるまでその接続要求は待たされることになる。acceptCountを設定することで、この待ち行列の最大値を設定する事ができる。待ち行列がいっぱいになった場合、そのコネクタに対する接続要求は待ち行列に空きができるまで拒否されることになる。
|
検証中
|
address
|
デフォルトでは、サーバソケットはネットワークデバイスのIPアドレスすべてを監視しているため、すべてのネットワークデバイスから到来したリクエストが処理される。しかし、単一のネットワークデバイスからの接続だけを選択したい場合、IPアドレスを指定することができる。この場合、address属性にIPアドレスがホスト名を指定することができる。ホスト名を使用した場合、そのホスト名はTomcatを実行するJava仮想マシンの起動時にOSのホスト名解決を用いてIPアドレスへと解決される。
|
0.0.0.0
|
allowTrace
|
TRACE HTTPメソッドを有効にする設定。
|
false
|
bufferSize
|
Tomcatのデフォルトでは、リクエストの入力ストリームはバッファリングされる。各リクエストソケットはこの属性によって設定されたサイズ(バイト単位)の入力バッファを保持することになる。こういったバッファのために使用される最大メモリ量は、このbufferSizeにmaxThreads設定の値を乗じたものとなる。
|
2048
|
ciphers
|
HTTPS用のConnectorを設定している場合、セキュアコネクションに使用できる暗号化手法を指定することができる。これを設定する必要があるのは、Tomcatを実行するJava仮想マシンが提供しているもののうち一部の暗号化手法だけを使用したいという場合のみとなる。使用する場合は、使用を許したい暗号化手法をコンマで区切って記述する。
|
-
|
clientAuth
|
このオプションはCLIENT_CERT認証(X.509)を利用し、Tomcatがクライアントから証明書を要求するタイミングを指定する必要がある場合に使用する。この値をwantにすることで、クライアントがTomcatとのTCP接続要求を確立するタイミングで証明書が要求されるようになるが、証明証を提供しなくても接続が失敗することはない。この値をtrueにすることで、クライアントがTomcatとのTCP接続要求を確立するタイミングで有効な証明証を要求するようになる。
|
false
|
compressableMimeType
|
当該Connectorのcompressionを”on”に設定して圧縮を行う場合、この属性にmimeタイプのリストを設定することができる。
|
text/html、text/xml、text/plain
|
compression
|
これはTomcatのコネクタにHTTP1.1 GZIP圧縮をサポートさせるものである。この属性をonにすることでテキスト本体が圧縮される。また値をforceにすることですべてのmimeタイプの本体が圧縮される。さらに数値を指定することで、その値よりもサイズの大きな任意のリソースが圧縮されるようになる。
|
off
|
connectionLinger
|
クライアントリクエストからのソケット接続をクローズする際、該当コネクションを一定時間存続させることが可能になる。その場合には、この属性にミリ秒単位の時間を設定する。-1を指定するとすぐさまソケット接続はクローズされる。
|
-1
|
connectionTimeout
|
これによって、クライアントのリクエストTCPソケットを受け入れ後、そのリクエストメソッド行Tomcatに送られるまでのConnectorの待ち時間をミリ秒単位で指定できるようになる。
|
60000
|
connectionUploadTimeout
|
Connectorはデフォルトでは、Tomcatがリクエストの処理を行っている間、connectionTimeoutの1分が過ぎるまでソケット通信を開いたままにしている。時間が過ぎた段階でconnectorはソケットをクローズする。しかし、リクエストがファイルのアップロードといった時間のかかるサーブレットであった場合、これによって問題が発生する。サーブレットに対応付けられたリクエストを行っている間、TomcatはconnectionUploadTimeout属性で指定された(ミリ秒単位)より長いタイムアウト時間を使用する。
|
300000
|
disableUploadTimeout
|
disableUploadTimeoutをtrueに設定することで、Connectorの接続をクローズすること無しに長く時間のかかるサーブレットを続行できるようになる。これをfalseに設定することで、connectionUploadTimeoutの値を使用することを意味する。
|
この属性のデフォルト値はConnector実装とTomcatのバージョンによってまちまちとなっている。
|
emptySessionPath
|
Connectorがセッションクッキー用のパスとして/を使用するかどうかを指定する。
|
false
|
enableLookups
|
trueを指定すると、リモートクライアントのホスト名をIPアドレスから逆引きして、request.getRemoteHost()に返却する。falseの場合はDNSの逆引きをスキップしてIPアドレスを返却する。
|
検証中
|
executor
|
このConnectorのリクエストスレッド用として使用するExcutorスレッドプールの名前。この属性はTomcatのバージョン6.0.11以降でのみ使用可能となっている。
|
-
|
keepAliveTimeout
|
クライアントリクエストがkeep-alive接続リクエストである場合、この属性によってTomcatがソケットをクローズする前に、どれだけの間同じソケット接続上で次のリクエストを待つことになるのかを指定する。
|
connectionTimeoutの値が使用される。
|
keyAlias
|
このConnectorのサーブレット証明書が格納されているキーストアファイルの別名。
|
-
|
keystoreFile
|
Tomcatのサーバキーペアと証明書チェインを保持したHTTPSキーストアファイルである。HTTPSや使用していない場合、このキーストアオプションには何も設定する必要がない。
|
TomcatはデフォルトでTomcatのJava仮想マシンプロセスを実行するユーザのホームディレクトリ中にある.keystoreファイルを使用するようになっている。
|
keystorePass
|
keysotreファイルのオープンとサーバ証明書データへのアクセスに使用するパスワードを指定する。キーストアを作成する際、キーストアをオープンするパスワードとサーバ証明書データにアクセスするパスワードは同じになっていなければならない。
|
changeit
|
keystoreType
|
keysotreファイルのフォーマットを指定する。
|
JKS
|
maxHttpHeaderSize
|
Tomcatが送受信できるHTTPリクエストや応答ヘッダの最大サイズをバイト単位で指定する。
|
8192
|
maxKeepAliveRequests
|
KeepAliveで接続を維持している間に処理するリクエスト数。この値を-1にするとリクエスト数は無制限になる(これはリクエストが発生しなくなってもコネクションがオープンしたままになるということを意味している)。この値を1にすることでkeep-alive接続を無効化することができる。
|
100
|
maxPostSize
|
POSTで送信する最大サイズ。
|
2097152(2MB)
|
maxSavePostSize
|
FORM認証・クライアント認証でのPOSTで送信する最大サイズ。
|
4096(4kB)
|
maxThreads
|
このConnectorが同時に実行すべきリクエスト取り扱いスレッドの最大数を指定する。この値を大きくしすぎると、サーバはスレッドののスケジューリングで競合が発生し、リクエストの処理に時間がかかりすぎるようになります。この値を小さくしすぎると、Tomcatはサーバコンピュータのハードウェア資源を生かし切れないようになり、リクエストの処理に必要以上の時間がかかるようになる。
|
200
|
noCompressionUserAgents
|
compression の機能を用いないHTTP クライアントの user-agent をマッチする正規表現のカンマ区切りの並びで指定する。
|
空文字列 (正規表現のマッチングをしない)
|
port
|
このConnectorがリクエストの監視を行うポート番号を指定する。
|
0
|
protocol
|
通信プロトコルを指定します。HTTP/1.0、HTTP/1.1またはAJP/1.3を指定する。
|
HTTP/1.1
|
proxyName
|
このConnectorがプロキシを利用する場合、そのプロキシのサーバ名を指定する。
|
指定されていない場合、HostのHTTPヘッダからのサーバ名が用いられる。
|
proxyPort
|
このConnectorがプロキシを利用する場合、そのプロキシのポート番号を指定する。
|
指定されていない場合、reauest.getDerverPort()が用いられる。
|
redirectPort
|
このConnectorが通常のHTTP用のものであり、リクエストがSSLトランスポートを必要とするsecurity-constraintに適合するものとして受け付けられた場合、Tomcatは指定されたポート番号へのリダイレクトを発行する。
|
443
|
restrictedUserAgents
|
keep aliveの機能を用いないHTTP クライアントの user-agent をマッチする正規表現のカンマ区切りの並びで指定する。
|
空文字列 (正規表現のマッチングをしない)
|
scheme
|
ここでサーブレットやJSPにおけるrequest.getScheme()の戻り値となる文字列を定義する。SSLコネクタの場合にはhttpsを指定しておく必要がある。
|
http
|
secure
|
request.getScheme() 呼び出しで返されるスキーマ文字列を定義する。この値がtrueならば https 通信が可能となる。
|
false
|
SSLEnabled
|
このConnectorでSSLが有効となっているかどうかを判定するフラグ。
|
false
|
sslProtocol
|
利用するSSLプロトコルを設定。
|
TLS
|
tcpNoDelay
|
これによって、TomcatがこのConnectorのソケット接続に、TCPのNagleアルゴリズムを使用しているかどうかが判定される。この値をtrueにすることでNagleアルゴリズムが無効化される。無効化することで、通常はウェブサーバのパフォーマンスが向上する。
|
true
|
threadPriority
|
この属性を設定することでリクエストを処理するスレッドの優先レベルを指定できる。
|
Tomcat中のこういったスレッドのデフォルト優先順位は、JavaのThreadにおけるデフォルト優先順位と同じ。
|
truststoreFile
|
信頼できるルート証明書を保持したHTTPSのtruststoreファイルを指定する。HTTPSやクライアント証明認証を使用していない場合、truststoreオプションには何も指定する必要はない。
|
この属性を指定しない場合、Tomcatはjavax.net.ssl.trustStoreシステムプロパティの値をtruststoreファイルのパスとして使用する。
|
truststorePass
|
truststoreファイルをオープンし、サーバ認証データにアクセスするために用いるパスワードを指定する。truststoreを作成する際には、truststoreをオープンするパスワードと認証データにアクセスするパスワードに同じものを設定しておく必要がある。
|
この属性を指定しない場合、Tomcatはjavax.net.ssl.trustStoreシステムプロパティの値をtruststoreファイルのパスとして使用する。
|
truststoreType
|
truststoreファイルのフォーマットを指定する。
|
デフォルトではkeystoreType属性に設定されている値と同じものを使用する。
|
URIEncoding
|
URIデコードされたURIが使用している文字エンコーディングを指定する。
|
ISO8859-1
|
useBodyEncodingForURI
|
リクエスト本体の文字エンコーディングがURIエンコーディングを異なる場合に指定する。
|
false
|
useIPVHosts
|
このConnectorがIPベースの仮想ホスティングを使用しているかどうかを判定するフラグ。ホスト名ベースの仮想ホスティングを使用する場合にはtrueを指定する。
|
false
|
xpoweredBy
|
X-Powered-Byレスポンスヘッダの世代が有効化されているかどうかを判定するフラグ。
|
false
|
以上、ご拝読ありがとうございました。