-
Notifications
You must be signed in to change notification settings - Fork 0
nginx構成
nginxの構成について説明します。
nginxは以下のようなファイルによって構成されています。
tree -a
.
├── .gitignore
├── .well-known
│ └── .gitignore
├── conf.d
│ ├── .gitignore
│ └── http.conf
├── mime.types
├── nginx.conf
├── nginx.prod.conf
└── templates
└── http.conf.template
docker-composeで起動時には、この設定が読み込まれます。
ポート番号ごとの設定はconf.dディレクトリに存在するものを読み込む方式をとっています。
include /etc/nginx/conf.d/*.conf;
ワーカー数などの重要な設定を書き込んでいます。
templatesディレクトリには、各ポートごとに設定を配置しています。 nginxのserver_nameを環境変数に合わせて自動的に設定できるように、templateを導入しています。 Templateディレクりに、.templateファイルを配置することで、nginxコンテナ立ち上げ時に自動的に、envsubstが環境変数を変換した後、conf.dディレクトリに配置されます。
仮にssl対応したい場合であれば、https.conf.templateをtemplatesディレクトリに追加した後に立ち上げなおす必要があります。
conf.dディレクトリはルートディレクトリではなくすべての設定は行えないため、nginx.confがconf.dディレクトリの.confファイルをすべて読み込む方式をとっています。
静的ファイルは、docker-compose up
時にコンテナ内の\static
に配置されます。
これは、./Django/static
をマウントしています。
./Django/static
はDjangoコンテナでもマウントしており、Djangoコンテナ内にてcollectstaticsを実行時にこのディレクトリに静的ファイルが収集されます。
静的ファイルを更新したい場合、Djangoコンテナにてcollectstaticsを実行後に、nginxを再起動する必要があります。
ssl対応などの際に.well-knownの開放が求められる場合があります。 本構成では事前に.well-knownへのルーティングを設定してあります。
基本的には配置するだけで、特段の設定なしに自動的にテキストファイルなどを公開することができます。
powered by U-Not