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
Web サーバー バージョン 6.0.0 以降では、 nginx.conf ファイルでは、root ユーザー権限を必要とする構成は許可されません。 詳細については、 重大な変更 を参照してください。
/webserver/configs/[ENV]/ 内のファイルは、Liferay Cloud の Web サーバー コンテナ内の /etc/nginx/ にオーバーライドとしてコピーされます。 /webserver/configs/[ENV]/public/ 内のファイルは、オーバーライドとして var/www/html/にコピーされます。
自動ログローテーション
Web サーバー バージョン 5.3.0 以上
Nginx のアクセス ログとエラー ログ (デフォルトでは、Nginx コンテナの /var/log/nginx/ ディレクトリに保存されます) は、個々のファイルが読み取れないほど大きくなるのを防ぐために自動的にローテーションされます。 定期的に (デフォルトでは UTC の深夜ごとに)、現在のアクセス ログ ファイルとエラー ログ ファイルがローテーションされ、新しいファイルに置き換えられます。 ファイルが特定の最大サイズしきい値 (デフォルトでは 50 MB) に達した場合にも、自動ローテーションが実行されます。
ローテーション後の最新のファイルは、ファイル名に .0 という接尾辞を付けて作成され、それ以降の古いファイルには、接尾辞が順番に付けられます (.1、 .2など)。 ローテーションはスムーズに処理され、Nginx またはサービスの通常の機能が中断されることはありません。
ローテーション動作を調整するには、Web サーバー サービスで次の環境変数を定義します。
-
LCP_LOGROTATE_SCHEDULE: 自動ローテーションのスケジュールを定義します(Cron スケジュール構文を使用、UTC±00)。 -
LCP_LOGROTATE_FILE_SIZE: ログファイルが自動的にローテーションされる前の最大サイズを定義します。 -
LCP_LOGROTATE_FILE_COUNT: コンテナ内に保持するローテーションログファイルの最大数を定義します。
スクリプト
スクリプトを使用すると、より広範囲にカスタマイズできますが、その場合は注意が必要です。 これは Web サーバー サービスをカスタマイズする最も強力な方法であり、望ましくない副作用を引き起こす可能性があります。
Web サーバー バージョン 6.0.0+ 以降では、Web サーバー サービスは、rootではなく、 nginx ユーザーとして実行されます。 実行にルート アクセスを必要とするスクリプト タスクは避けてください。 詳細については、 重大な変更 を参照してください。
configs/[ENV]/scripts/ フォルダにあるすべての .sh ファイルは、サービスを開始する前に実行されます。 たとえば、次のディレクトリ構造にスクリプトを配置して、すべてのログ ファイルを削除できます。
webserver
├── configs
│ └── common
│ └── scripts
│ └── remove-log-files.sh
└── LCP.json
主要な展開ディレクトリ
| ファイルタイプ | パス | 説明 |
|---|---|---|
| Webサーバーの構成 | 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_LOG_FORMAT | Nginxログの形式をカスタマイズします。 公式 Nginx ドキュメントを参照してください。 | |
LCP_WEBSERVER_MODSECURITY | Off | ModSecurityを有効または無効にします。 この値をOnに設定すると、ルールが有効になり処理されます。または、DetectionOnlyに設定すると、破壊的なアクションを実行せずにルールが処理されます。 Web アプリケーション ファイアウォールを参照してください。 |
Ingress ロードバランサー も、Web サーバー サービス経由で構成されます。 このサービスに環境変数を追加して、ロードバランサーやカスタムドメインを設定することができます。 詳細については、 ロードバランサ環境変数リファレンス を参照してください。
Nginx のすべての環境変数とその他の構成形式は、 公式 Nginx ドキュメントに記載されています。 このような構成は configs/[ENV]/ ディレクトリで設定でき、環境変数はサービスの LCP.json ファイルで設定できます。