Nginx設定編③httpディレクティブを読む。Linuxサーバ構築手順まとめ
今回はNginxのWebサーバ設定をみていきます!
本連載では、Linux上で様々なサーバソフトウェアのインストール手順、操作・設定方法を解説していきます。
なるべく細かく、嵌まったポイントやコマンドなどまとめていくつもりです。参考になれば嬉しいです。
前回の「Nginx設定編②nginx.confを読む。Linuxサーバ構築手順まとめ」で、nginx.confのディレクティブを個別で見ていきました。
前回はシンプルディレクティブの説明にとどまりましたが、今回はブロックディレクティブも見ていきます。
今回取り上げるのは、Webサーバとしての設定を司るhttpディレクティブです。
httpディレクティブ
httpディレクティブの設定項目
まず、全体を見てみます。
http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
いくつかシンプルディレクティブが指定されていることがわかりますね。
それでは、細かく各ディレクティブの内容を解説していきます。
上記ソースでは一番最初と一番最後に出てきますね。別ファイルを読み込みたいときに使用するディレクティブです。
2つ目のようにメタキャラクタを用いて、それにマッチするファイルは全てincludeするという書き方もありです。
また、includeされるファイルも、正しいディレクティブの記述になっていないといけません。
書式:
include ファイル名;
例
include /etc/nginx/conf.d/*.conf;
このディレクティブは、クライアントへのレスポンスのデフォルトMIMEタイプを設定します。
1行前でincludeしている/etc/nginx/mime.typesファイルでは、MIMEタイプを判定するtypesディレクティブが記載されているのですが、
この記載ではMIMEタイプを決定できなかったときに、本ディレクティブで指定したMIMEタイプが適用されることになります。
デフォルトは「text/plain」です。
書式:
default_type MIMEタイプ
例
default_type application/octet-stream;
ちなみに、上記の「application/octet-stream」というのは、任意のバイナリデータファイルを意味し、圧縮ファイルや実行ファイルなどがこのタイプに分類されることがあります。
アクセスログの記録フォーマットを指定するディレクティブです。
フォーマットはフォーマット名を指定することができ、次に登場するaccess_logディレクティブでフォーマット名を指定することで、そのフォーマットに則したログ出力が行われます。
フォーマットはシングルクォテーションで括ります。
書式:
log_format フォーマット名 ‘フォーマット’;
例
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
例では「main」というフォーマット名をつけたフォーマットを指定しています(yumでインストールした場合のデフォルトの記述)が、
これに加え、デフォルトで組み込まれている「combined」と命名された次のようなフォーマットも存在します。
log_format combined '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';