Tips

Nginx設定編③httpディレクティブを読む。Linuxサーバ構築手順まとめ

access_log
アクセスログの出力ファイルパス、ログフォーマットを指定します。バッファリングを有効にする場合は、バッファ設定も行います。
また、「off」を指定するとアクセスログが出力されなくなります。「syslog:server=~」を指定するとsyslogに出力できます。
また、ログフォーマットが指定されていないと、デフォルトで「combined」がログフォーマットとして採用されます。
書式:
access_log ファイルパス [フォーマット];

access_log  /var/log/nginx/access.log  main;

上記はmainをログフォーマットとして指定しています。

sendfile
sendfile()というシステムコールを用いるか否かを指定するディレクティブ。
sendfile()はカーネル内でファイルディスクリプタのコピーを行うため、非常に効率がよく、
Nginxにおいてはクライアントへの送信時に利用されるため、レスポンスが早くなります。
デフォルトではoffです。
書式:
sendfile onまたはoff;

sendfile on
tcp_nopush
先ほどの記述ではコメントアウトされている内容になりますが、一応解説を入れておきます。
この設定は「sendfile」が「on」の時だけ有効になる設定です。
レスポンスヘッダとファイルの先頭を同一パケットでまとめて送信することで、効率化を図ることができるようです。
書式:
tcp_nopush onまたはoff;

tcp_nopush on;
keepalive_timeout
Apacheにも似たような設定がありますね。クライアントとの接続をオープンしているNginx側での時間を指定します。
0を指定するとクライアントから接続できなくなります。
書式:
keepalive_timeout 時間(秒);

keepalive_timeout  65;

オプションで2つ目のパラメータを指定可能で、これによりレスポンスヘッダで返す“Keep-Alive: timeout=~”の値を指定することもできます。

gzip
レスポンスデータを圧縮するかどうかを指定します。
圧縮することでデータ転送の高速化を図れます。
書式:
gzip onまたはoff;

gzip  on;

今回のまとめ

今回はNginxの設定ファイルnginx.confの中から、httpディレクティブの中身を順に見ていきました。
nginx.confはApacheでいうところのhttpd.conf。ですので、Apacheを設定したことがある方であれば、似たような設定項目が多いことに気づくのではないでしょうか。同時に、今回見てきた内容ではApacheでよく記述する内容が足りていないことにも気づきますよね。
ドキュメントルートやら、ポートやら、エラーページやら、そういった設定が出てきませんでした。そういった設定がNginxにないわけではありません。実は、includeしているファイルの方で設定しているのです。次回はこのincludeしているファイルの中身を読んでいくことにします。

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search