5. Tomcat設定項目

本章では、WebOTXに設定することのできる項目について説明しています。

5.1. Tomcat設定項目との対応

Tomcat 7.xの設定項目をWebOTX V10に設定する方法をまとめました。設定を反映させる方法は以下のようになります。

・ domain.xmlへの設定を運用管理コンソールにより設定する場合(推奨)
運用管理コンソールにて設定を行った後、ドメインを再起動してください。

・ domain.xmlへの設定をコマンドにより設定する場合
ドメインを起動した状態で、運用管理コマンドにて設定コマンドを入力した後、ドメインを再起動してください。

・ domain.xmlを直接編集する場合
ドメイン停止後、記述箇所に設定内容を記述し、ドメインを起動してください。

・ nec-web.xmlを編集する場合
Webアプリケーションを更新して、更新したアプリケーションを配備し直してください。

また、domain.xmlとnec-web.xmlの両方に設定箇所がある項目については、同時に設定した場合nec-web.xmlへの設定が優先されます。

コネクタ(HTTP、AJP共通)

表2.5.1-1
項目 説明 設定箇所 設定方法
maxPostSize コンテナの FORM URL パラメタ構文解析で扱う POST の最大バイト数を指定します。 この属性に -1 をセットすると無制限になります。無制限を設定した場合、大量のパラメタを扱うことができますが 、OutOfMemoryErrorが発生するリスクがあります。適切な上限値を設定することを推奨します。
デフォルト値は2097152 (2MByte)です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「<プロトコル名>」
     -「HTTP」
の順にクリックしていき、「属性」タブの「最大ポストサイズ」に設定を行います。

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.max-post-size-bytes=2097152

■domain.xmlへの設定例
http要素のmax-post-size-bytes属性を設定します。
<network-config> <protocols> <protocol name="http-listener"> <http max-post-size-bytes="2097152">
maxParameterCount 処理可能なリクストパラメータの上限を指定します。 指定値を超えたパラメータは無視されます。 -1 を設定した場合、上限値は無制限となります。 デフォルト値は10000です。 このパラメータをむやみに大きくすることはセキュリティ上問題があります。詳細な情報については以下の参考ページを参照ください。
参考:Apache Tomcat におけるサービス運用妨害 (CPU 資源の消費) の脆弱性
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「<プロトコル名>」
     -「HTTP」
の順にクリックしていき、「操作」タブの「プロパティの設定」に記述を行います。
「maxParameterCount=20000」

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.property.maxParameterCount=20000

■domain.xmlへの設定例
http要素のmaxParameterCountプロパティを設定します。
<network-config> <protocols> <protocol name="http-listener"> <http >  <property name="maxParameterCount" value="20000" />
proxyName このコネクタがプロキシを利用する場合、そのプロキシのサーバ名を指定します。HttpServletRequest.getServerName() が返すサーバ名の設定です。
デフォルト値はありません。
またsendRedirect実行時の宛先URLにも影響します。詳細は[リファレンス > 設定 > Webコンテナ > 備考.sendRedirect実行時の宛先URLについて]を参照してください。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「<プロトコル名>」
     -「HTTP」
の順にクリックしていき、「属性」タブの「プロキシ名」に設定を行います。

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.proxy-name=www.mycompany.com

■domain.xmlへの設定例
http要素のproxy-name属性を設定します。
<network-config> <protocols> <protocol name="http-listener"> <http proxy-name="www.mycompany.com">
proxyPort このコネクタがプロキシを利用する場合、そのプロキシのポート番号を指定します。HttpServletRequest.getServerPort() が返すポート番号の設定です。
デフォルト値はありません。
またsendRedirect実行時の宛先URLにも影響します。詳細は[リファレンス > 設定 > Webコンテナ > 備考.sendRedirect実行時の宛先URLについて]を参照してください。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「<プロトコル名>」
     -「HTTP」
の順にクリックしていき、「属性」タブの「プロキシポート」に設定を行います。

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.proxy-port=80

■domain.xmlへの設定例
http要素のproxy-port属性を設定します。
<network-config> <protocols> <protocol name="http-listener"> <http proxy-port="80">
URIEncoding 「http://contents?a=%12%34」形式で記述されたURLをデコードする際の文字エンコーディングを指定します。
デフォルト値は「ISO-8859-1」です。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「<プロトコル名>」
     -「HTTP」
の順にクリックしていき、「属性」タブの「URIエンコーディング」に設定を行います。

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.uri-encoding=Shift_JIS

■domain.xmlへの設定例
http要素のuri-encoding属性を設定します。
<network-config> <protocols> <protocol name="http-listener"> <http uri-encoding="Shift_JIS">
useBodyEncodingForURI Tomcat4.1.x系との互換性の為に使用されます。デフォルト値は false ですが、互換を保つには true を指定して下さい。true にすると、ContentType又はRequest.setCharacterEncodingメソッドで指定されたエンコーディングをデコードに使用します。同じHTTPの属性の"uri-encoding"は使用されません。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「<プロトコル名>」
     -「HTTP」
の順にクリックしていき、「属性」タブの「URIのエンコーディング」に設定を行います。

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.use-body-encoding-for-uri=true

■domain.xmlへの設定例
http要素のuse-body-encoding-for-uri属性を設定します。
<network-config> <protocols> <protocol name="http-listener"> <http use-body-encoding-for-uri="true">
xpoweredBy Servlet 仕様で推奨されたヘッダを使って、その仕様をサポートしていることを広告します。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「<プロトコル名>」
     -「HTTP」
の順にクリックしていき、「属性」タブの「X-Powered-Byヘッダの有効化」に設定を行います。

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.xpowered-by=true

■domain.xmlへの設定例
http要素のxpowered-by属性を設定します。
<network-config> <protocols> <protocol name="http-listener"> <http xpowered-by="true">
format アクセスログの出力形式をカスタマイズすることができます。
デフォルト値は"%h %l %u %t "%r" %s %b"です。

フォーマットは以下になります。
%a - 接続元IPアドレス
%A - 自ホストのIPアドレス
%b - 送信バイト数 なしの場合は”-“
%B - 送信バイト数
%h - 接続元ホスト名
%H - リクエストプロトコル名
%l - 接続元論理ユーザ名
%m - リクエストメソッド
%p - 接続ポート番号
%q - クエリ文字列
%r - リクエストの最初の一行
%s - HTTPレスポンスステータスコード
%S - セッションID
%t - 日付と時間
%u - 認証済みのユーザ名
%U - リクエストされたURL
%v - ローカルホスト名
%D - リクエスト処理時間(ミリ秒)
%T リクエスト処理時間(秒)
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「HTTPサービス」
   -「アクセスログ」
の順にクリックしていき、「設定」タブの「フォーマット」に記述を行います。
「"%h %l %S %u %t \"%r\" %s %b %D"」

■運用管理コマンドでの設定例
  otxadmin> set server.http-service.access-log.format="%h %l %S %u %t \"%r\" %s %b %D"

■domain.xmlへの設定例
http-service要素のaccess-log要素のformatに設定します。
<http-service>
 <access-log format="%h %l %S %u %t"%r" %s %b %D">
 </access-log>
</http-service>

コネクタ(HTTP)

表2.5.1-2
項目 説明 設定箇所 設定方法
SSLEnabled コネクタ上で SSL トラフィックを有効にする場合はこの属性を使用します。コネクタ上で SSLハンドシェーク/暗号化/復号をオンにするには、この値をtrueに指定してください。
デフォルト値はfalseです。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「protocol」
    -「HTTPリスナ」
の順にクリックしていき、「設定」タブの「SSLの使用の有無」のチェックボックスで設定します。

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.https-listener.security-enabled="true"

■domain.xmlへの設定例
protocol要素のsecurity-enabledを設定します。
<network-config>
 <protocols>
  <protocol security-enabled="true" name="https-listener">
scheme request.getScheme() 呼び出しで返されるセキュア情報を指定します。SSL を使用する場合は https を指定して下さい。デフォルト値はありません。
またsendRedirect実行時の宛先URLにも影響します。詳細は[リファレンス > 設定 > Webコンテナ > 備考.sendRedirect実行時の宛先URLについて]を参照してください。
domain.xml ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「ネットワーク構成」
   -「プロトコル構成」
    -「protocol」
    -「HTTPリスナ」
     -「HTTP」
の順にクリックしていき、「属性」タブの「スキーマ」で http または https を設定します。

■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.scheme="https"

■domain.xmlへの設定例
http 要素の scheme を設定します。
<network-config>
 <protocols>
  <protocol>
   <http scheme="https">
secure request.isSecure() 呼び出しで返されるスキーマ文字列を定義します。この値が true ならば https 通信が可能となります。デフォルト値はfalseです。 domain.xml ■運用管理コマンドでの設定例
  otxadmin> set server.network-config.protocols.protocol.http-listener.http.secure="true"

■domain.xmlへの設定例
http 要素の secure を設定します。
<network-config>
 <protocols>
  <protocol>
   <http secure="true">




コンテキスト(共通)

表2.5.1-3
項目 説明 設定箇所 設定方法
crossContext このアプリケーション内での ServletContext.getContext() の呼出しが、この仮想ホストで走っている他のwebアプリケーションへのリクエストディスパッチャを、セキュリティを意識した環境で、getContext() が常にnullを返すようにしたいならば、これをfalseにしてください。
デフォルト値はtrueです。
nec-web.xml
または
doman.xml
■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーション」
  -「Webモジュール」
    -<Webモジュール名>
の順にクリックしていき、「属性」タブの「他モジュールへのアクセス」にチェックを行います。
この場合以下の設定も必要です。
  otxadmin> set server.applications.web-module.<アプリケーション名>.module.<Webモジュール名>.engine.web.web-module-config.override=true


■運用管理コマンドでの設定例
  otxadmin> set server.applications.web-module.<アプリケーション名>.module.<Webモジュール名>.engine.web.web-module-config.cross-context=false

この場合以下の設定も必要です。
  otxadmin> set server.applications.web-module.<アプリケーション名>.module.<Webモジュール名>.engine.web.web-module-config.override=true

■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="crossContextAllowed" value="true" />
</nec-web-app>

■domain.xmlへの設定例
applications要素のweb-module要素に設定します。
<applications>
 <web-module cross-context="true" />
</applications>
reloadable /WEB-INF/classes/と/WEB-INF/libにあるクラスが変更されていないかどうかを監視します。 この機能はアプリケーション開発時には非常に有用ですが、顕著な実行時オーバヘッドを要するため、製品アプリケーションを配備して使用するときには勧められません。
WebOTX V10では本機能を設定ではなくコマンド実行にて実現します。
コマンドのため設定は無し ■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「Webコンテナ」
の順にクリックしていき、「操作」タブの「Webアプリケーションの差異ロード」を選択し「実行」ボタンをクリックします。

■運用管理コマンドでの実行方法
  otxadmin> invoke server.web-container.reloadAllModules
resourceOnlyServlets welcome-fileが物理的に存在する必要があるサーブレット名を指定します。
ディレクトリアクセス時にファイル一覧を表示したい場合は"jsp"を設定してください。

設定値のフォーマット: "サーブレット名1[,サーブレット名2]..."
nec-web.xml ■nec-web.xmlへの設定例
nec-web-app要素にpropertyを設定します。
<nec-web-app>
 <property name="resourceOnlyServlets" value="jsp" />
</nec-web-app>


コンテキスト(Standard)

表2.5.1-4
項目 説明 設定箇所 設定方法
antiJARLocking この値をtrueにすると、クラスローダはURL経由でJAR内部のリソースをアクセスするとき、JARファイルロッキングを回避するように特別な手段をとります。これはアプリケーションの起動時間に多少の遅延が生じますが、ファイルロッキングが起こり得るプラットフォームや設定状況によっては有用です。
デフォルト値はfalseです。
Tomcat 8.5にはARロックを回避する仕組みが導入され「antiJARLocking」は廃止されました。このため、Tomcat 8.5をベースとするWebOTX V10.1には本パラメータはありません。


Realm
JDBCレルムについてはWebOTX マニュアルの [ 構築・運用 > レルム > レルムの設定 > JDBCレルム ]を参照してください。

表2.5.1-7
項目 説明 設定箇所 設定方法
classname JDBCレルムに使用するクラス名を記述します domain.xml JDBCレルムの設定は下記のプロパティをまとめて設定します。

■運用管理コンソールへの設定例
<ドメイン名>
 -「アプリケーションサーバ」
  -「セキュリティサービス」
の順にクリックしていき、「操作」タブの「認証レルムの作成」にて設定します。

■運用管理コマンドでの設定例
  otxadmin> create-auth-realm --classname
com.nec.webotx.enterprise.security.auth.realm.jdbc.JDBCRealm
--property "driverName=oracle.jdbc.driver.OracleDriver:
jaas-context=JDBCRealm:connectionURL=jdbc\:oracle\:thin\:
@OracleServer\:1521\:OracleDB:connectionName=scott:
connectionPassword=tiger:user-table=jdbc_user:user-name-column=userid:
password-column=passwd:group-table=jdbc_role:group-name-column=role:
datasource-jndi=jdbc/DigestTest"
JDBCrealm


※DIGEST認証で使用するJDBCレルムの場合は、jaas-contextを jdbcDigestRealmに変更します。
datasource-jndi データソースを使ってデータベースに接続するためのJNDI名を記述します。
driverName 使用するJDBCドライバのクラス名を記述します。
group-name-column 対応するユーザを含む "user roles"テーブルの列名を記述します。
password-column 対応するパスワードを含む"users" テーブルの列名を記述します。
user-name-column ユーザ名を含む、"users"と"user roles"テーブルの列名を記述します。
group-table 記述したuserNameColとroleNameColを含む "user roles"テーブルの名前を記述します。
user-table 記述したuserNameColとuserCredColを含む "users"テーブルの名前を記述します。


Loader

表2.5.1-8
項目 説明 設定箇所 設定方法
delegate Webアプリケーションを読み込む際にクラスをロードするかどうかを指定します。
デフォルト値はtrueです。
nec-web.xml ■nec-web.xmlへの設定例
class-loader要素に設定します。
<nec-web-app>
 <class-loader delegate="true" />
</nec-web-app>




5.2. JavaVMオプションのサポート

JavaVMオプションでの設定項目は[ リファレンス > 設定 > Webコンテナ > Webコンテナ設定項目一覧 > JavaVMオプションで設定可能な項目一覧 ]を参照してください。