はじめに
Nginxのデフォルトで読み込まれる追加設定ファイルの置き場として/etc/nginx/conf.d/
と/etc/nginx/sites-available/
と/etc/nginx/sites-enabled
があるが、それらの違いについて調べてみたことをまとめる。
/etc/nginx/conf.d/
メイン設定ファイル(/etc/nginx/nginx.conf
)から読み込まれる。
デフォルトの設定(/etc/nginx/nginx.conf
)を上書きする設定を記述するファイルの置き場。/etc/nginx/conf.d/
配下に*.conf
という名前の設定ファイルを作成すると、設定を追加できる。
/etc/nginx/sites-available/
バーチャルホストの追加設定を記述するファイルの置き場。運用したいドメインごとにファイルを作成して設定を記述する。
ここには利用可能な設定ファイルが置かれるだけで、ここに置いたファイルが直接Nginxの設定に反映されるわけではない。
/etc/nginx/sites-enabled/
メイン設定ファイル(/etc/nginx/nginx.conf
)から読み込まれる。
/etc/nginx/sites-enabled/
配下で/etc/nginx/sites-available/
配下のファイルへのシンボリックファイルを貼る。設定を無効にしたい場合はシンボリックリンクを削除すれば、設定ファイルは/etc/nginx/sites-available
に残したままにできる。
使い分け
/etc/nginx/conf.d/
以下に置かれた設定ファイルは常に適用されるのに対し、/etc/nginx/sites-available/
以下のファイルは/etc/nginx/sites-enabled/
にシンボリックリンクを貼るかどうかで設定を使用するかどうかを切り替えられる。
後者の方が柔軟に設定を変更できるので、バーチャルホストの設定を追加する際はそちらを使う方がいいのかな。面倒くさいから全部/etc/nginx/conf.d/
に置くって人もいるみたいだけど。