Documentation

You are viewing the documentation for the 2.3.x release series. The latest stable release series is 2.4.x.

§追加設定

アプリケーションを本番モードで実行するときに、任意の設定を上書きすることができます。このセクションでは、この「追加設定」のよくあるユースケースを紹介します。

これらすべての追加設定は Java のシステムプロパティを使って指定しているため、Play によって生成された起動スクリプトを利用している場合は、そのまま使用することができます。

§HTTP サーバーのアドレスとポートを指定する

HTTP ポートとアドレスの両方を指定することができます。デフォルトはポート 9000 、アドレス 0.0.0.0 (全てのアドレス)です。

$ /path/to/bin/<project-name> -Dhttp.port=1234 -Dhttp.address=127.0.0.1

この設定はデフォルトの組み込み Netty サーバだけが利用します。

§JVM の起動オプションを指定する

start スクリプトに JVM の起動オプションを指定することができます。指定しなかった場合は、 JVM のデフォルト設定が利用されます。

$ /path/to/bin/<project-name> -J-Xms128M -J-Xmx512m -J-server

便宜上、メモリの最小値、最大値、パーマネント領域や ReservedCodeCacheSize を一度に設定することもできます; これらの値は (メモリの最大値を表す) 与えられた引数を元に計算式を使って決定されます:

$ /path/to/bin/<project-name> -mem 512 -J-server

§代替の設定ファイルを指定する

デフォルトで読み込まれる設定ファイルはクラスパス上の application.conf です。必要に応じて、別の設定ファイルを指定することができます。

§-Dconfig.resource を使う

アプリケーションのクラスパスで代替の設定ファイルを検索します。(普通はこのような代替の設定ファイルを、パッケージング前にアプリケーションの conf/ ディレクトリに入れておくとよいでしょう。) Play は conf/ ディレクトリを検索するので conf/ を加える必要はありません。

$ /path/to/bin/<project-name> -Dconfig.resource=prod.conf

§-Dconfig.file を使う

アプリケーションのバイナリにパッケージングされていない、ファイルシステム上の設定ファイルを指定することができます。

$ /path/to/bin/<project-name> -Dconfig.file=/opt/conf/prod.conf

§-Dconfig.url を使う

任意の URL を指定して、設定ファイルをロードすることができます。

$ /path/to/bin/<project-name> -Dconfig.url=http://conf.mycompany.com/conf/prod.conf

Note that you can always reference the original configuration file in a new prod.conf file using the include directive, such as:

include "application.conf"

key.to.override=blah

§特定の設定キーを上書きする

設定ファイル全体を置き換えたいのではなく、いくつかの設定値キーを上書きできればよい、ということもあるでしょう。その場合は、 Java のシステムプロパティを利用して次のようにします。

$ /path/to/bin/<project-name> -Dapplication.secret=abcdefghijk -Ddb.default.password=toto

§環境変数を使う

application.conf から環境変数を参照することができます。

my.key = defaultvalue
my.key = ${?MY_KEY_ENV}

フィールドを上書きする my.key = ${?MY_KEY_ENV} という記述をしました。これは、MY_KEY_ENV という値がない場合は単に無かった事にされます。しかし、MY_KEY_ENV という環境変数が設定されている場合は、環境変数の方が利用されます。

§logback の設定ファイルを変更する

§カスタムの logback 設定ファイルをアプリケーションにバンドルする

application-logger.xml という代理の logback 設定ファイルを作成し <app>/conf にコピーします。

システムプロパティを使って別の logback 設定ファイルを指定することができます。設定ファイルが指定されなかった場合、play は本番モードにおいてデフォルトの logger.xml を使用することを覚えておいてください。これは application.conf にて設定したあらゆるログレベルが上書きされることを意味しています。常に自身の application-logger.xml を指定するのが良いプラクティスです。

§-Dlogger.resource を使う

別の logback 設定ファイルをクラスパスから読み込みことができます。

$ /path/to/bin/<project-name> -Dlogger.resource=conf/prod-logger.xml

§-Dlogger.file を使う

別の logback 設定ファイルをファイルシステムから読み込むことができます。

$ /path/to/bin/<project-name> -Dlogger.file=/opt/prod/prod-logger.xml

§-Dlogger.url を使う

別の logback 設定ファイルを URL から読み込むことができます。

$ /path/to/bin/<project-name> -Dlogger.url=http://conf.mycompany.com/logger.xml

§RUNNING_PID のパスを変更する

起動したアプリケーションのプロセス id を含むファイルのパスを変更することができます。通常、このファイルは play プロジェクトのルートディレクトリに配置されますが、/var/run のような再起動時に自動的にクリアされる場所に配置するのが賢明です:

$ /path/to/bin/<project-name> -Dpidfile.path=/var/run/play.pid

このディレクトリが存在し、Play アプリケーションを実行しているユーザーが書き込み権限を持っていることを確認してください。

このファイルを使うことで、例えば以下のようにして kill コマンドを使ってアプリケーションを停止することができます:

$ kill $(cat /var/run/play.pid)

§Advanced HTTP server configuration

The Play HTTP server can be tuned in a number of ways via system properties.

Note: You cannot use application.conf to configure the HTTP server properties.

The following HTTP protocol options are supported:

http.netty.maxInitialLineLength
The maximum length for the initial line of an HTTP request, defaults to 4096
http.netty.maxHeaderSize
The maximum size for the entire HTTP header, defaults to 8192
http.netty.maxChunkSize
The maximum size that Netty will buffer body chunks before splitting them, defaults to 8192

Play also allows configuring the full list of TCP socket options that Netty supports, by prefixing them with http.netty.option. Note that socket options that should be applied to sockets of accepted connections should have an additional child prefix before the option. Here are some common ones:

http.netty.option.child.keepAlive
Set to true/false to turn on/off TCP keep alive
http.netty.option.backlog
Configure the maximum size for queued incoming connections

For a full list of supported options, see the following Netty documentation:

Next: フロントエンド HTTP サーバの設定


このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。