Nginx のファイル構成のメモ

/etc/nginx/ 配下のファイルの紐づきをざっくりメモ程度に...

参考

ファイル群

Nginx の設定ファイル /etc/nginx/ 配下のファイルを一部見てみます。

ファイル名 説明
nginx.conf 全般の設定
conf.d nginx.conf に設定追加
sites-available nginx.conf に設定追加
sites-enabled sites-available を読み込む

nginx.conf

Nginx が一番最初に見に行くファイルで、ここの構成を元に起動する。
ファイルの中身は以下のような構成。

user www-data;
worker_processes auto;
...(略)...
events {
    ...(略)...
}
http {
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    ...(略)...
}
mail {
    ...(略)...
}

include で *.conf と sites-enabled 配下のファイルを読み込んでいるようです。
中身のそれぞれの設定は別の記事にするつもりなのでここでは飛ばします。

conf.d

nginx.conf に追記したい設定を記述したファイルを設置する。
中小規模のサイトで利用する。

下記のように例えば default.conf 配置する事が出来ます。

vi /etc/nginx/conf.d/default.conf

前述した nginx.conf を見てみると *.conf を include しているのが http コンテキスト内なので server コンテキストから設置出来ます。

server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ /\.ht {
        deny  all;
    }
}

sites-available

conf.d ディレクトリと同様に sites-available ディレクトリには、nginx.conf に追記したい設定ファイルを設置する。
多くのバーチャルホストを運用するような大規模サイトで利用する。

読み込み淳は下記の通りで sites-enabled から sites-available はシンボリックリンクで読み込めるようになっている。

読み込み順: nginx.conf -> sites-enabled -> sites-available

サンプルの設定ファイルの sites-available/default

サンプルの設定ファイルは下記のとおり。
sites-available/default

これは既にシンボリックリンクが通っているので読み込まれている状態。

ls -l /etc/nginx/sites-enabled/
default -> /etc/nginx/sites-available/default

(default はあるけど本当の置き場 /etc/nginx/sites-available/default を参照してます的な...)

オリジナルで設定ファイルを設定する

default を元にファイルを作成する。

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/ファイル名

ファイルを編集する。

vi /etc/nginx/sites-available/ファイル名

シンボリックリンクを設定する。

ln -s /etc/nginx/sites-available/ファイル名 /etc/nginx/sites-enabled/
YouTube