アクセスログの出力ファイルパス、ログフォーマットを指定します。バッファリングを有効にする場合は、バッファ設定も行います。
また、「off」を指定するとアクセスログが出力されなくなります。「syslog:server=~」を指定するとsyslogに出力できます。
また、ログフォーマットが指定されていないと、デフォルトで「combined」がログフォーマットとして採用されます。
書式:
access_log ファイルパス [フォーマット];
例
access_log /var/log/nginx/access.log main;
上記はmainをログフォーマットとして指定しています。
sendfile()というシステムコールを用いるか否かを指定するディレクティブ。
sendfile()はカーネル内でファイルディスクリプタのコピーを行うため、非常に効率がよく、
Nginxにおいてはクライアントへの送信時に利用されるため、レスポンスが早くなります。
デフォルトではoffです。
書式:
sendfile onまたはoff;
例
sendfile on
先ほどの記述ではコメントアウトされている内容になりますが、一応解説を入れておきます。
この設定は「sendfile」が「on」の時だけ有効になる設定です。
レスポンスヘッダとファイルの先頭を同一パケットでまとめて送信することで、効率化を図ることができるようです。
書式:
tcp_nopush onまたはoff;
例
tcp_nopush on;
Apacheにも似たような設定がありますね。クライアントとの接続をオープンしているNginx側での時間を指定します。
0を指定するとクライアントから接続できなくなります。
書式:
keepalive_timeout 時間(秒);
例
keepalive_timeout 65;
オプションで2つ目のパラメータを指定可能で、これによりレスポンスヘッダで返す“Keep-Alive: timeout=~”の値を指定することもできます。
レスポンスデータを圧縮するかどうかを指定します。
圧縮することでデータ転送の高速化を図れます。
書式:
gzip onまたはoff;
例
gzip on;
今回のまとめ
今回はNginxの設定ファイルnginx.confの中から、httpディレクティブの中身を順に見ていきました。
nginx.confはApacheでいうところのhttpd.conf。ですので、Apacheを設定したことがある方であれば、似たような設定項目が多いことに気づくのではないでしょうか。同時に、今回見てきた内容ではApacheでよく記述する内容が足りていないことにも気づきますよね。
ドキュメントルートやら、ポートやら、エラーページやら、そういった設定が出てきませんでした。そういった設定がNginxにないわけではありません。実は、includeしているファイルの方で設定しているのです。次回はこのincludeしているファイルの中身を読んでいくことにします。