NGINX#
Lagoonのnginx-drupal Dockerイメージ。Drupalと連携するように最適化されています。Lagoonのnginxイメージに基づいています。
Lagoonの適応#
このイメージは、Lagoonで使用するために準備されています。そのため、すでにいくつかのことが行われています:
- フォルダの権限は、
fix-permissionsで自動的に適応されるため、このイメージはランダムなユーザーで動作します。 drupal.confの設定ファイルをできるだけシンプルで、カスタマイズしやすいようにするために、ファイルのメインセクション(server、location /、location @drupal、location @php)にinclude指示を追加しました。Drupal.confカスタマイズのセクションでさらなる情報を提供します。
含まれるDrupal設定 - drupal.conf#
このイメージには、Drupal 7, 8, 9の完全なNGINX動作設定が含まれています。以下のような追加機能も含まれています:
humanstxtDrupalモジュールのサポートrobotstxtDrupalモジュール- ローカル開発用の
vagrantディレクトリへのアクセスを禁止します。
Drupal.confのカスタマイズ#
drupal.confファイルは、nginx設定ファイルをDrupal用にカスタマイズしたものです。顧客によってカスタマイズ方法は様々です:
- 修正が困難 (エラーが発生した場合のサポートが難しい )
*.confファイルを使用した組み込みのカスタマイズ
drupal.confファイルはいくつかのセクションに分かれています。私たちがカスタマイズに含めたセクションは以下の通りです:
serverlocation /location @drupallocation @php.
このセクションには、それぞれ2つのインクルードがあります:
*_prepend.conf*_append.conf
location @drupalセクションは以下のようになります:
location @drupal {
include /etc/nginx/conf.d/drupal/location_drupal_prepend*.conf;
include /etc/nginx/fastcgi.conf;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
fastcgi_pass ${NGINX_FASTCGI_PASS:-php}:9000;
include /etc/nginx/conf.d/drupal/location_drupal_append*.conf;
}
この設定は、お客さまがlocation_drupal_prepend.confおよびlocation_drupal_append.confという名前のファイルを作成することを許可します。これらのファイルには、他のステートメントの前に挿入したい設定と、後に挿入したい設定をすべて記述することができます。
これらのファイルは一度作成されると、nginxコンテナ内に必ず存在しなければならないので、Dockerfile.nginxに以下のように追加します:
COPY location_drupal_prepend.conf /etc/nginx/conf.d/drupal/location_drupal_prepend.conf
RUN fix-permissions /etc/nginx/conf.d/drupal/location_drupal_prepend.conf
Drupal Core Statisticsモジュールの設定#
コアのStatisticsモジュールを使用している場合、簡単な設定変更が必要になるかもしれません。
デフォルトのNGINX設定では、トラッキングエンドポイント/core/modules/statistics/statistics.phpへのリクエストが拒否されます(404)
これはデフォルトのNGINX設定に関連しています:
この問題を解決するために、特定のロケーションルールを定義し、これをロケーションのプリペンド設定として注入します:
## Allow access to to the statistics endpoint.
location ~* ^(/core/modules/statistics/statistics.php) {
try_files /dev/null @php;
}
NGINXコンテナのビルド時にこのファイルをコピーします。
# Drupal StatisticsモジュールのNGINX設定を追加する
COPY .lagoon/nginx/location_prepend_allow_statistics.conf /etc/nginx/conf.d/drupal/location_prepend_allow_statistics.conf