Spring Boot Tomcatを構成する方法

1. 概要

Spring Boot Webアプリケーションには、デフォルトで事前設定済みの組み込みWebサーバーが含まれています。 ただし、状況によっては、カスタム要件を満たすために*デフォルトの構成を*変更したい場合があります。
このチュートリアルでは、_application.properties_ファイルを使用してTomcat組み込みサーバーを構成するためのいくつかの一般的な使用例を見ていきます。

2. 一般的な組み込みTomcat構成

2.1. サーバーアドレスとポート

最も一般的な設定*変更が必要な場合があるのはポート番号です*:
server.port=80
_server.port_パラメータを提供しない場合、デフォルトで_8080_に設定されます__.__
場合によっては、n
server.address=my_custom_ip
デフォルトでは、値は__0.0.0.0 __に設定され、すべてのIPv4アドレスを介した接続が許可されます。 別の値、たとえばlocalhost – _127.0.0.1_ –を設定すると、サーバーがより選択的になります。

2.2. エラー処理

*デフォルトでは、Spring Bootは標準エラーWebページを提供します*。 このページは_ Whitelabel _と呼ばれます。 デフォルトで有効になっていますが、エラー情報を表示したくない場合は無効にすることができます:
server.error.whitelabel.enabled=false
_Whitelabel_へのデフォルトのパスは_ / error_です。 _server.error.path_パラメーターを設定することでカスタマイズできます:
server.error.path=/user-error
また、エラーに関するどの情報を提示するかを決定するプロパティを設定することもできます。 たとえば、エラーメッセージとスタックトレースを含めることができます。
server.error.include-exception=true
server.error.include-stacktrace=always
チュートリアルlink:/exception-handling-for-rest-with-spring[RESTの例外メッセージ処理]およびlink:/spring-boot-custom-error-page [ホワイトラベルエラーページのカスタマイズ]では、Spring Bootでのエラー処理について詳しく説明しています。

2.3. サーバー接続

低リソースコンテナで実行する場合は、* CPUおよびメモリの負荷を減らします*。その1つの方法は、アプリケーションで処理できる同時リクエストの数を制限することです。 逆に、この値を増やして使用可能なリソースを増やし、パフォーマンスを向上させることができます。
Spring Bootでは、Tomcatワーカースレッドの最大量を定義できます。
server.tomcat.max-threads=200
Webサーバーを構成する場合、サーバー接続タイムアウトを設定することも役立つ場合があります*。 これは、接続が閉じられる前に、接続後にクライアントが要求を行うのをサーバーが待つ最大時間を表します。
server.connection-timeout=5s
リクエストヘッダーの最大サイズを定義することもできます。
server.max-http-header-size=8KB
リクエスト本文の最大サイズ:
server.tomcat.max-swallow-size=2MB
または、投稿リクエスト全体の最大サイズ:
server.tomcat.max-http-post-size=2MB

2.4. SSL

  • Spring BootアプリケーションでSSLサポートを有効にするには、_server.ssl.enabled_プロパティを_true_に設定し、SSLプロトコルを定義する必要があります。

server.ssl.enabled=true
server.ssl.protocol=TLS
また、証明書を保持するキーストアへのパスワード、タイプ、およびパスを構成する必要があります。
server.ssl.key-store-password=my_password
server.ssl.key-store-type=keystore_type
server.ssl.key-store=keystore-path
また、キーストアでキーを識別するエイリアスも定義する必要があります。
server.ssl.key-alias=tomcat
SSL構成の詳細については、https://www.baeldung.com/spring-boot-https-self-signed-certificate [Spring Bootで自己署名証明書を使用するHTTPS]の記事をご覧ください。

2.5. Tomcatサーバーのアクセスログ

Tomcatアクセスログは、ページヒットカウント、ユーザーセッションアクティビティなどを測定する場合に非常に役立ちます。
*アクセスログを有効にするには、単に設定します:
server.tomcat.accesslog.enabled=true
また、ログファイルに追加されるディレクトリ名、プレフィックス、サフィックス、日付形式などの他のパラメーターも構成する必要があります。
server.tomcat.accesslog.directory=logs
server.tomcat.accesslog.file-date-format=yyyy-MM-dd
server.tomcat.accesslog.prefix=access_log
server.tomcat.accesslog.suffix=.log

3. 結論

このチュートリアルでは、いくつかの一般的な_Tomcat_組み込みサーバー構成を学習しました。 さらに可能な構成を表示するには、公式のhttps://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html[Spring Boot application properties docs]ページにアクセスしてください。
いつものように、これらの例のソースコードはhttps://github.com/eugenp/tutorials/tree/master/spring-boot-ops-2[GitHub]で入手できます。