Webサーバーサービス(Nginx)
Nginx Webサーバーは、オープンインターネットからLiferay Cloudサービスへのゲートウェイとして機能します。 ユーザーからのすべてのトラフィックを処理し、高性能なWebサーバーとして機能します。

詳細については、 Webサーバーサービスの制限事項 のセクションを参照してください。
設定
Liferay Cloudのサービスはデフォルトでうまく機能するように微調整されていますが、さらにNginxを設定する必要がある場合があります。 これを行うには、任意の設定ファイル (.conf) を configs/[ENV]/conf.d/ フォルダー内に含めます。 変更をデプロイすると、ファイルが自動的にサービスに挿入され、デフォルトの設定が上書きされます。 適切なディレクトリ内に設定ファイルを含むフォルダ構造の例を以下に示します。
webserver
├── configs
│ └── common
│ └── conf.d
│ └── nginx.conf
└── LCP.json
ウェブサーバーのバージョン6.0.0以降では、 nginx.conf ファイルでは、root ユーザー権限を必要とする設定は許可されていません。 詳細については、 破壊的変更 を参照してください。
/webserver/configs/[ENV]/ 内のファイルは、Liferay Cloud のウェブサーバーコンテナ内の /etc/nginx/ にオーバーライドとしてコピーされます。 /webserver/configs/[ENV]/public/ 内のファイルは、オーバーライドとして var/www/html/ にコピーされます。
自動ログローテーション
ウェブサーバーバージョン5.3.0以降
Nginx のアクセスログとエラーログ (デフォルトでは、Nginx コンテナの /var/log/nginx/ ディレクトリに保存されます) は、個々のファイルが大きくなりすぎて読み取れなくなるのを防ぐために自動的にローテーションされます。 定期的に(デフォルトではUTCの毎正時)、現在のアクセスログファイルとエラーログファイルがローテーションされ、新しいファイルに置き換えられます。 ファイルのサイズが一定の最大しきい値(デフォルトでは50MB)に達すると、自動的にローテーションが行われます。
ローテーション後の最新ファイルは、ファイル名に .0 という接尾辞が付き、それより古いファイルには、接尾辞が順番に付けられます (.1、 .2など)。 ローテーションはスムーズに処理され、Nginxやサービスの通常の動作を妨げることはありません。
ウェブサーバーサービスで以下の環境変数を定義することで、回転動作を調整できます。
-
LCP_LOGROTATE_SCHEDULE: 自動ローテーションのスケジュールを定義します (Cron スケジュール構文を使用し、UTC±00 で指定します)。 -
LCP_LOGROTATE_FILE_SIZE: ログファイルが自動的にローテーションされる前の最大サイズを定義します。 -
LCP_LOGROTATE_FILE_COUNT: コンテナに保持するローテーション済みログファイルの最大数を定義します。
スクリプト
より高度なカスタマイズにはスクリプトを使用できますが、その際は注意が必要です。 これはウェブサーバーサービスをカスタマイズする最も強力な方法ですが、望ましくない副作用を引き起こす可能性もあります。
ウェブサーバーバージョン6.0.0+では、ウェブサーバーサービスはrootではなく nginxユーザーとして実行されます。 ルート権限を必要とするスクリプトタスクは避けてください。 詳細については、 破壊的変更 を参照してください。
configs/{ENV}/scripts/フォルダーにある .sh ファイルは、サービスを開始する前に実行されます。 例えば、このディレクトリ構造にスクリプトを配置して、すべてのログファイルを削除することができます。
ウェブサーバー ├── 設定 │ └── 共通 │ └── スクリプト │ └── remove-log-files.sh └── LCP.json
主要デプロイメントディレクトリ
| ファイルの種類 | パス | 説明 |
|---|---|---|
| ウェブサーバーの設定 | webserver/configs/[ENV]/conf.d/ | 設定ファイルには、 nginx.conf が含まれます。 |
| 静的コンテンツ | webserver/configs/[ENV]/public/ | 静的コンテンツがあなたのサイトに配信されます。 |
| カスタムスクリプト | webserver/configs/[ENV]/scripts/ | スクリプト は、サービス開始時に自動的に実行されます。 |
環境変数リファレンス
これらの環境変数は、Webサーバーサービスで利用できます:
| 名前 | デフォルト値 | 説明 |
|---|---|---|
LCP_HAPROXY_RESOLVER_HOLD_TIME | 10 | HAProxy ロードバランサーの ホールド 設定 を構成します。 この構成は、 valid ステータス用です。 |
LCP_HAPROXY_RESOLVER_RETRIES | 3 | HAProxy ロードバランサーの resolve_retries 設定 を構成します (セッションが諦める前にサーバーへの接続を試行する再試行回数)。 |
LCP_HAPROXY_RESOLVER_TIMEOUT_RESOLVE | 1 | HAProxy ロードバランサーの タイムアウト 設定 を構成します (イベントのタイムアウトの秒数)。 この構成は、 resolve イベント用です。 |
LCP_HAPROXY_RESOLVER_TIMEOUT_RETRY | 1 | HAProxy ロードバランサーの タイムアウト 設定 を構成します (イベントのタイムアウトの秒数)。 この構成は、 retry のイベント用です。 |
LCP_HAPROXY_SERVER_TEMPLATE_BACKEND_NUM | 10 | 任意のサービスの最大インスタンス数を上書きします。 自動スケーリングを使用する予定の場合は、これを必要な最大値に設定してください。 |
LCP_LOG_NGINX_CONF | false | 起動時に nginx.conf ファイルの内容をログに記録します。 |
LCP_LOGROTATE_FILE_COUNT | 52 | 自動ローテーション 後に保持する Nginx アクセスおよびエラー ログの最大数 (それぞれ)。 この制限を超えると、最も古いファイルが削除されます。 |
LCP_LOGROTATE_FILE_SIZE | 50M | Nginxのアクセスログまたはエラーログが、自動ログローテーションを強制する前に到達できる最大サイズ 。 |
LCP_LOGROTATE_SCHEDULE | 0 0 * * * | 自動 Nginx ログローテーション が発生するときの Cron スケジュール。 |
LCP_WEBSERVER_GLOBAL_TIMEOUT | 60s | すべてのプロキシタイムアウト値を設定するレガシー変数 (proxy_connect_timeout、 proxy_read_timeout、および proxy_send_timeout)。 特定のタイムアウト変数が何も定義されていない場合にのみ適用されます。 |
LCP_WEBSERVER_PROXY_CONNECT_TIMEOUT | 75s | HAProxy または Liferay への接続を確立するための Nginx proxy_connect_timeout の値を設定します。 この設定のグローバルタイムアウトを上書きします。 |
LCP_WEBSERVER_PROXY_READ_TIMEOUT | 5m | HAProxy または Liferay からの応答を読み取るための Nginx proxy_read_timeout の値を設定します。 この設定のグローバルタイムアウトを上書きします。 |
LCP_WEBSERVER_PROXY_SEND_TIMEOUT | 5m | HAProxy または Liferay にリクエストを送信するための Nginx proxy_send_timeout の値を設定します。 この設定のグローバルタイムアウトを上書きします。 |
LCP_WEBSERVER_LOG_FORMAT | Nginxログの形式をカスタマイズします。 公式 Nginx ドキュメント を参照してください。 | |
LCP_WEBSERVER_NGINX_ACCESS_LOG_MODE | off | ログメッセージへのアクセスを制御する設定は、クラウドコンソールに転送されます。 サポートされている値: off (ログなし)、 error (エラー関連のログのみ)、および all (すべてのアクセスログ)。 トラブルシューティングには エラー を使用し、通常動作には オフ にリセットしてください。 |
LCP_WEBSERVER_MODSECURITY | Off | ModSecurityを有効または無効にします。 ルールを処理するには、この値を On に設定するか、破壊的なアクションを実行せずにルールを処理するには、 DetectionOnly に設定します。 Webアプリケーションファイアウォール を参照してください。 |
Ingress Load Balancer も、Web サーバー サービスを介して構成されます。 このサービスに環境変数を追加して、ロードバランサーやカスタムドメインを設定することができます。 詳細については、 ロードバランサーの環境変数リファレンス を参照してください。
Nginx のすべての環境変数とその他の設定形式は、 公式 Nginx ドキュメント に記載されています。 このような設定は configs/[ENV]/ ディレクトリで設定でき、環境変数はサービスの LCP.json ファイルで設定できます。