TL;DR
前回はこちら。
そして参考書はやはりこちら。
今回は外部設定ファイルの読み込みについてです。
環境
試していく
↓のように、メインの設定ファイルとは別のファイルに設定を記述して、includeで読み込む時がある。
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
そしてよくあるのが、「外から読み込んでいるファイルは何か?」「読み込んだファイルはどう展開されているのか?」を確認したい場合には、nginx -T というコマンドを使うと便利という話。
このコマンドを実行した際に、先ほどサンプルとして載せた行がどのように展開するか。
# configuration file /usr/share/nginx/modules/mod-http-image-filter.conf:
load_module "/usr/lib64/nginx/modules/ngx_http_image_filter_module.so";
# configuration file /usr/share/nginx/modules/mod-http-perl.conf:
load_module "/usr/lib64/nginx/modules/ngx_http_perl_module.so";
# configuration file /usr/share/nginx/modules/mod-http-xslt-filter.conf:
load_module "/usr/lib64/nginx/modules/ngx_http_xslt_filter_module.so";
# configuration file /usr/share/nginx/modules/mod-mail.conf:
load_module "/usr/lib64/nginx/modules/ngx_mail_module.so";
# configuration file /usr/share/nginx/modules/mod-stream.conf:
load_module "/usr/lib64/nginx/modules/ngx_stream_module.so";
一行目のconfigurationのコメント行に記載されているファイルの中身を確認する。
load_module "/usr/lib64/nginx/modules/ngx_http_image_filter_module.so";
ということで、/etc/nginx/nginx.conf → /usr/share/nginx/modules/mod-http-image-filter.confのようにファイルが読み込まれていることがわかった。
includeの順番
include /usr/share/nginx/modules/*.conf;
このようにアスタリスクで記述した場合のinlucdeの順序は、パス名でソートされた順となる。
よって、読み込み順を制御したい場合はファイル名の先頭に数字をつけて制御する。