nginx設定の基礎
nginxの設定の基礎を解説します。
ちなみに、本構築ガイドでは、デフォルトの設定ファイルを変更していません。 設定ファイルを追加しているだけです(後述)。
デフォルトでは、設定ファイル群が/etc/nginx/
以下に配置されます。
nginxは/etc/nginx/nginx.conf
だけを読みこみますが、
このファイルから多くのファイルを include しています。
/etc/nginx/nginx.conf の解説
ゼロから書き下す人はいないでしょうから、 こういうスタイルだと理解してもらえば十分でしょう。 定番の設定を追加するか、該当する値を変更するだけなら、 これだけわかっていれば大丈夫ではないかと…
基本的な文法
まず#
はコメントなので、以下、てきとうに省略していきます
# #より右側はコメント
include ファイル
命令はファイルを読み込みますが、
ファイル
部分はシェルのパターン(例: *.conf は拡張子が.confのファイルすべて)が使えます
include /usr/share/nginx/modules/*.conf;
この構文は、
/usr/share/nginx/modules/
ディレクトリにある拡張子がconf
のファイル群をすべて読みこみます
BINDの設定ファイル風の次のようなスタイルで書きます
タイプ {
変数 値;
}
(Unixのシェルのように)値は$変数
で展開可能です
/etc/nginx/nginx.conf 概略
Amazon Linux 2 の /etc/nginx/nginx.conf は次のようになっています
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
- 1行目: nginxプロセスはユーザ nginx の権限で動かします
- 3行目: エラーは
/var/log/nginx/error.log
ファイルに書きこみます
include /usr/share/nginx/modules/*.conf;
/usr/share/nginx/modules/
ディレクトリにある拡張子がconf
のファイル群をすべて読みこみます
http {
... たくさんの設定 ...
}
はHTTPプロトコルの設定つまりWWWサーバの中核部分です。
access_log /var/log/nginx/access.log main;
アクセスログは/var/log/nginx/access.log
ファイルに書きこまれます
include /etc/nginx/conf.d/*.conf;
ユーザがカスタマイズした設定を置くディレクトリ、重要な設定です。
/etc/nginx/conf.d/
ディレクトリにある設定(拡張子がconfの)ファイル群を読みこみます。
本構築ガイドでは、
/etc/nginx/conf.d/ingress.conf
ファイルを作成し、
リバースプロキシの設定をnginxに読みこませています。
ユーザのカスタマイズ設定を読みこんだあとに、 デフォルトの 80/tcp を listen するといった設定が続いています
server {
listen 80;
listen [::]:80;
... 省略 ...