Skip to content

nginx構成

Uno-Takashi edited this page Apr 9, 2022 · 5 revisions

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

nginx.conf

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を再起動する必要があります。

.well-known

ssl対応などの際に.well-knownの開放が求められる場合があります。 本構成では事前に.well-knownへのルーティングを設定してあります。

基本的には配置するだけで、特段の設定なしに自動的にテキストファイルなどを公開することができます。