default_server
使用例
server {
listen 80 default_server; # ←こいつ
server_name example.org www.example.org;
...
}
解説
もし “Host” ヘッダがどのサーバ名ともマッチしない場合、またはリクエストにこのフィールドがまったく含まれていない場合は、nginxはこのリクエストをデフォルトサーバに振り向けます。上記の設定ではデフォルトサーバは最初のもので、これは nginx の標準的なデフォルトの挙動です。設定内の最初のサーバをデフォルトサーバにしたくない場合は、listen ディレクティブに default_server パラメータを使って明示的に設定することができます:
server_name
が host
と一致しない場合は、 一番最初に読み込まれた設定を使用。
嫌な場合は default_server
と記述する。
補足
例えば ELB にぶら下がっている EC2 は、ELB から 毎秒(?) /alive
へのアクセスが来る。
この際に叩かれる host
はプライベートDNS を使われる。 e.g. ip-172-31-1-234
そのため、 default_server
の設定をキチンとしておかないと、 /alive
へのアクセスが 200 で返らず ELB に OutOfService
と解釈される。
server_tokens
使用例
http {
access_log /var/log/nginx/access.log;
server_tokens off; # ←こいつ
...
}
解説
http
, server
or location
のいずれかに記述。
nginx のバージョンや使用している OS を隠蔽したい時に使える。
参考
log directory の permission
ログを格納するディレクトリの権限を 755
にしておく必要がある。
$ ls -la /var/log/
..
drwxr-xr-x 2 www-data adm 4096 Jul 12 06:38 nginx/
..
これはログローテーション時にアクセスログ/エラーログを開き直すために必要。