このエントリーを含むはてなブックマークはてなブックマーク - Tomcat 6の設定 この記事をクリップ!Livedoorクリップ - Tomcat 6の設定 Yahoo!ブックマークに登録 @niftyクリップに追加 Share on Tumblr FC2ブックマークへ追加 newsing it! Googleブックマークに追加 Bookmark this on Delicious FriendFeedで共有 このエントリをつぶやくこのWebページのtweets

お久しぶりです、インフラ事業部の小田島です。


Tomcat 6のデフォルトのタイムアウトの設定を知りたくて、ネットサーフィンをしまくっていたのですが、見るサイト見るサイトで設定値が違っていたので、下記サイトを参考に、とりあえず、Connectorだけですが、抜粋で調べたものを、備忘録して記載していきます。



Apache Tomcat Configuration Reference

属性名

内容

デフォルト

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


上記以外で参考にしたサイト

  • tomcat6のserver.xmlのAJP用Connector設定のデフォルト値

  • 他APサーバ(Tomcat)からWebOTXへの移行ガイド

  • Tomcatをツールで運用し、設定の基礎を知る


  • 以上、ご拝読ありがとうございました。