サーバ
最終更新日: 2023年7月31日
R8 | R9
「環境」メニューから「サーバ」を選択します。
この説明は、ビルドするWebアプリケーション (wagbyappフォルダ) に反映されます。すなわち、運用するアプリケーションのための設定です。
サーバの設定
Tomcat
JVM最大ヒープメモリサイズ(MB)
Java Virtual Machine(JVM)の最大ヒープメモリサイズを指定することができます。初期値は "512" です。単位は MB (メガバイト) です。
ワンポイント
大量のデータを扱う場合や、アプリケーションに同時にログオンする利用者が多い場合は、このメモリサイズを大きくする必要があります。
JVM初期ヒープメモリサイズ(MB)
Java Virtual Machine(JVM)の初期ヒープメモリサイズを指定することができます。初期値は "64" です。単位は MB (メガバイト) です。
JVM最大ヒープメモリパーセンテージ(%)
ビルドしたアプリケーションを Docker コンテナで運用する場合、コンテナで設定された最大メモリ量からパーセントで指定した割合をヒープサイズとして設定します。「JVM最大ヒープメモリサイズ」を空白とし、変わってこの欄を指定することを推奨します。小数一桁まで入力でき、最大値100を指定できます。
JVM初期ヒープメモリパーセンテージ(%)
ビルドしたアプリケーションを Docker コンテナで運用する場合、「JVM初期ヒープメモリサイズ」を空白とし、変わってこの欄を指定することを推奨します。小数一桁まで入力でき、最小値0、最大値100を指定できます。
ワンポイント
Docker コンテナ運用でも(パーセント指定ではなく)メモリのサイズを指定することは可能です。サイズとパーセントの両方が指定された場合はサイズが優先されます。コンテナ側のメモリ量がサイズで設定した値より大きくなるようにしてください。コンテナのメモリ量より大きな数字を指定した場合、アプリケーションの起動に失敗します。
HTTPポート番号
Tomcatが使用するHTTPポート番号を指定します。初期値は "8921" です。
ワンポイント
Wagbyでは、標準のポート番号として 8921 を使っています。この値を 80 に変えることで、Webブラウザのアドレスバーに入力するURLから ":8921" というポート番号表記をなくすことができます。ただしこの場合、お使いのマシンですでに別のWebサーバが動作していないことを確認してください。たとえばWindows Server系OSの場合、IISというWebサーバが起動していれば、すでに80番ポートを使用しています。この場合はIISを停止してください。
ワンポイント
IIS や Apache Web Server と(Wagbyが提供する)Tomcatを同じポート80番で共存させるような設定を行うこともできます。定義方法が複雑なため、本マニュアルでは割愛します。詳細についてはWagby販売パートナーへご相談ください。
AJP1.3ポート番号/パスワード
この設定は Apache Web Server と連携するときに使用します。初期値は空欄となっており、AJP1.3ポートは利用しないようになっています。設定する場合 "8009" が使われることが多いですが、任意です。
さらにポート番号指定時に "AJP1.3 パスワード" を設定することもできます。指定した場合は server.xml の Connector 要素の secret 属性に値が設定されます。接続元にも同じパスワードを設定してください。
参考資料
- Apache Tomcat 8 Configuration Reference
- Apache Module mod_proxy (mod_proxy_ajpの場合はProxyPassにsecret=xxxと指定する)
- The Apache Tomcat Connectors - Reference Guide (mod_jkの場合はworkers.propertiesのsecretを指定する)
サーバポート番号/サーバシャットダウンパスワード9.1.0
Tomcatが使用するサーバポート番号を指定します。初期値は "18005" です。
この値を空白(または負の数)とすると、サーバポートを利用しなくなります。
シャットダウンのパスワード
サーバポートは外部から shutdown 命令を受け付けることができます。このパスワードを設定します。未指定時の初期値は "SHUTDOWN" + Javaソースコードパッケージ名の最後の要素(すべて大文字)です。
リダイレクトポート番号9.1.0
Tomcatが使用するリダイレクトポート番号を指定します。初期値は "18443" です。この設定は通常、変更する必要はありません。
送信リクエストのセッションIDをチェックする(CSRF対応)
送信リクエストIDのチェックを行うかどうかを選択します。初期値は有効になっています。
この設定はセキュリティレベルを向上させるものです。具体的にはCSRF(Cross Site Request Forgeries)といったログオンユーザの権限を利用したサイト攻撃手法が行えなくなります。
HTTPヘッダの最大サイズ (byte)9.2.0
Tomcat 設定ファイル (server.xml) の maxHttpHeaderSize パラメータに反映されます。未指定の場合、デフォルト値 8192 (byte) となります。[詳細...]
リクエストパラメータの最大値9.2.0
Tomcat 設定ファイル (server.xml) の maxParameterCount パラメータに反映されます。未指定の場合、デフォルト値 20000 (byte) となります。[詳細...]
POSTの最大サイズ (byte)9.2.0
Tomcat 設定ファイル (server.xml) の maxPostSize パラメータに反映されます。未指定の場合、デフォルト値 2MB となります。0以上、4バイト整数の最大値 2,147,483,647 までの範囲で指定できます。負数を指定することはできません。[詳細...]
キャッシュの最大値9.2.2
画像などの静的リソースをキャッシュするバッファのサイズをキロバイト単位で指定します。Tomcat 設定ファイル (META-INF/context.xml) の Resources 要素にある cacheMaxSize パラメータに反映されます。未指定の場合、デフォルト値 10240(10MB) となります。[詳細...]
キャッシュを確認する間隔9.2.2
キャッシュされたファイルが変更されたかどうかをチェックする間隔をミリ秒単位で指定します。Tomcat 設定ファイル (META-INF/context.xml) の Resources 要素にある cacheTTL パラメータに反映されます。未指定の場合、デフォルト値 5000(5sec) となります。[詳細...]
ビルド
Javaのバージョン
自動生成されるJavaソースコードが、どのJavaでコンパイルできるかを指定します。
R9.2.0以降
- Java 11 以降を利用できます。初期値は "11" (Java 11) になっています。 "1.8" (Java 8), "9", "10" を指定することはできません。
R9.0.0〜R9.1.x
- Java 8から15までを利用できます。初期値は "1.8" (Java 8) になっています。Java 9 以降を利用する場合、この欄にJavaのバージョン (9,10,11,..,15) を指定します。
- Java 17 を利用する場合は、"11" と記載してください。[詳細...]
Java 8より前のバージョンでは動作しません
"1.6" や "1.7" を指定することはできません。
重要
開発の途中でこのバージョンを変更した場合は、フルビルドを行ってください。スクリプトコードも再作成されます。
Wagbyのバージョンと、対応するJavaバージョンの対応表
キャッシュ
Wagbyは一度データベースから読み込んだ値をメモリにキャッシュします。そのキャッシュサイズを指定することができます。単位はメガバイトとなっており、標準は100メガバイトとなっています。
HTTPセッション
HttpSession オブジェクトを格納する場所を指定します。「マルチセッション」を利用する場合に設定します。
格納方式 | 説明 |
---|---|
HTTP Session | マルチセッションを利用しません。選択肢が空白の場合、こちらになります。 |
Spring Session HashMap (テスト用) |
マルチセッションを利用します。HttpSession をメモリ内のハッシュマップで管理します。テスト用であり、本番運用を行うことはできません。 |
Spring Session Redis | HttpSession を Redis データベースで管理します。マルチセッションを本番で利用する場合は、こちらを使ってください。 |
Spring Session HashMap の制約
"Spring Session HashMap" は開発中にマルチセッションを試すために用意されています。この方式はセッションタイムアウト(利用者が一定期間操作しなかった場合、自動的にログオフされる機構)に未対応のため、本番運用には用いないでください。(*1)
Spring Session Redis を利用する場合
Redis はキーバリュー型のデータストア製品で、オープンソースで提供されています。次のパラメータを指定することができます。
設定欄 | 説明 |
---|---|
Redisホスト名 | Redisサーバのホスト名を指定します。 |
Redisパスワード | Redisサーバに接続するパスワードを指定します。 |
Redisポート番号 | Redisサーバに接続するポート番号を指定します。 |
Spring Session ネームスペース |
複数のWagbyアプリケーションが1つのRedisサーバを利用する場合、個々のWagbyアプリケーションを識別するためのネームスペースを指定することができます。空白時は "spring:session:" が暗黙的なネームスペースとして利用されます。例えばここに "wagbyapp1" と指定することで、"spring:session:" が自動的に付与された "spring:session:wagbyapp1" というネームスペースで利用されます。なお1つのWagbyアプリケーションで1つのRedisサーバを利用する場合は、本設定は空白でも問題ありません。本設定を行う場合は、(複数の)Wagbyアプリケーションをそれぞれ識別するための文字列を指定する、ということになります。 |
Wagby アプリケーションを起動する前に、Redis を起動しておく必要があります。 また Wagby アプリケーションを再起動する場合、Redis の保存内容を消去しておくようにしてください。詳細は Wagby Developer Network のページで説明します。
認証
認証方式(LDAP,ActiveDirectory,OpenID Connect)は「アカウント > Windows Active Directory/LDAP による認証」をお読みください。
同一ログオンアカウントでシステムにログオンできる最大数
同一アカウントでログオンできる最大数を指定することができます。標準値は3となっています。この値を -1 とすると、無制限になります。
ここで指定したログオン回数を超えたログオンを試みた時には、自動ログオフ機能(もっとも古い時刻のログオンセッションをログオフさせる)により、そのユーザをログオン可能にします。
自動ログオフ機能を無効にすることで、ログオンさせないようにすることもできます。
ジョブを実行するアカウントは、ジョブ実行時のみ、この設定は適用対象外となります。つまりジョブの実行は同時に複数行うことができます。
最大接続ログオン数
アプリケーションへログオンできる最大数を指定します。この数を超えたログオンを行うことはできません。標準値は100となっています。この値を -1 とすると、無制限になります。
注意
ログオンできる最大数の調整は、お使いのハードウェアの性能(CPU速度、メモリ量)に依存します。最適値についての一般的な計算式はありません。この値のチューニング方法等については、Web サーバ設定の専門家またはWagby販売パートナーにご相談ください。
セッションタイムアウト
Webアプリケーションサーバのセッションタイムアウトの設定を行うことができます。単位は秒です。利用者がここで指定した時間、何もアクションをおこさなかった場合、自動的にログオフ処理を行います。標準値は「1,200秒(20分)」となっています。
参考情報 - application.properties
この設定は、ビルドしたアプリケーションの次のファイルに反映されます。
wagbyapp/webapps/(プロジェクト名)/WEB-INF/classes/application.properties
ビルドされた wagbyapp の上記ファイルを直接、編集して再起動することで(ビルド処理を行わずに)セッションタイムアウトを変更することができます。
server.servlet.context-parameters.session_timeout=1200
修正後、Webアプリケーションを再起動すると設定が有効になります。
注意
Tomcat 単体ではなく Apache などの Web サーバと連携している場合、Webサーバのタイムアウト設定もあわせて行なってください。(詳細は Web サーバのマニュアルをお読みください。)
参考情報 - session-timeout
wagbyapp/conf/web.xml に記載されている session-timeout は使っていません。Redis利用時の挙動
Redis 利用時かつオートスケールでない場合は「最後にアクセスした時間」ではなく「ログオンした時刻がもっとも古い時刻のログオンセッション」からログオフされます。
セッションタイムアウトが起こった場合の動作9.1.4
セッションタイムアウトが起こったあとにWagbyの画面を操作しようとするとログオン画面が表示されます。その際、"接続の有効期間が切れました(もしくは管理者によって接続が解除されました)。再ログオンしてください。" というメッセージが表示されます。