nginx 1.16.1のデフォルト設定についての解説記事. CentOS 7にRPMインストールしたnginx 1.16.1の/etc/nginx/nginx.conf
のデフォルト設定を詳しく見ていきます.
- 環境情報
CentOS Linux release 7.6.1810 (Core)
nginx version: nginx/1.16.1
nginx.conf全体
/etc/nginx/nginx.conf
の全体設定は次のような感じです. 以下、詳しく見ていく.
/etc/nginx/nginx.conf
1 # For more information on configuration, see:
2 # * Official English Documentation: http://nginx.org/en/docs/
3 # * Official Russian Documentation: http://nginx.org/ru/docs/
4
5 user nginx;
6 worker_processes auto;
7 error_log /var/log/nginx/error.log;
8 pid /run/nginx.pid;
9
10 # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
11 include /usr/share/nginx/modules/*.conf;
12
13 events {
14 worker_connections 1024;
15 }
16
17 http {
18 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
19 '$status $body_bytes_sent "$http_referer" '
20 '"$http_user_agent" "$http_x_forwarded_for"';
21
22 access_log /var/log/nginx/access.log main;
23
24 sendfile on;
25 tcp_nopush on;
26 tcp_nodelay on;
27 keepalive_timeout 65;
28 types_hash_max_size 2048;
29
30 include /etc/nginx/mime.types;
31 default_type application/octet-stream;
32
33 # Load modular configuration files from the /etc/nginx/conf.d directory.
34 # See http://nginx.org/en/docs/ngx_core_module.html#include
35 # for more information.
36 include /etc/nginx/conf.d/*.conf;
37
38 server {
39 listen 80 default_server;
40 listen [::]:80 default_server;
41 server_name _;
42 root /usr/share/nginx/html;
43
44 # Load configuration files for the default server block.
45 include /etc/nginx/default.d/*.conf;
46
47 location / {
48 }
49
50 error_page 404 /404.html;
51 location = /40x.html {
52 }
53
54 error_page 500 502 503 504 /50x.html;
55 location = /50x.html {
56 }
57 }
58
59 # Settings for a TLS enabled server.
60 #
61 # server {
62 # listen 443 ssl http2 default_server;
63 # listen [::]:443 ssl http2 default_server;
64 # server_name _;
65 # root /usr/share/nginx/html;
66 #
67 # ssl_certificate "/etc/pki/nginx/server.crt";
68 # ssl_certificate_key "/etc/pki/nginx/private/server.key";
69 # ssl_session_cache shared:SSL:1m;
70 # ssl_session_timeout 10m;
71 # ssl_ciphers HIGH:!aNULL:!MD5;
72 # ssl_prefer_server_ciphers on;
73 #
74 # # Load configuration files for the default server block.
75 # include /etc/nginx/default.d/*.conf;
76 #
77 # location / {
78 # }
79 #
80 # error_page 404 /404.html;
81 # location = /40x.html {
82 # }
83 #
84 # error_page 500 502 503 504 /50x.html;
85 # location = /50x.html {
86 # }
87 # }
88
89 }
90
Nginx本体の設定
/etc/nginx/nginx.conf
1 # For more information on configuration, see:
2 # * Official English Documentation: http://nginx.org/en/docs/
3 # * Official Russian Documentation: http://nginx.org/ru/docs/
4
# + Nginx本体の設定
# ワーカプロセスの実行ユーザを指定
5 user nginx;
# ワーカのプロセス数
# 「auto」にするとCPUコア数を自動検出してコア数と同じ数のワーカプロセスを起動する
6 worker_processes auto;
# エラーログの出力設定
7 error_log /var/log/nginx/error.log;
# PIDファイルの出力先
8 pid /run/nginx.pid;
9
10 # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
11 include /usr/share/nginx/modules/*.conf;
12
# ワーカプロセスのイベント駆動についての設定を記述する
# eventsディレクディブは必須設定のため、コンテキストの内容が空でも記述する
13 events {
# ワーカプロセスが処理するコネクション数
# コネクション数はワーカ毎の最大数
14 worker_connections 1024;
15 }
16
HTTPサーバの設定
/etc/nginx/nginx.conf
# + HTTPサーバの設定
# HTTPサーバについての設定を記述する
17 http {
# ログフォーマット定義
18 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
19 '$status $body_bytes_sent "$http_referer" '
20 '"$http_user_agent" "$http_x_forwarded_for"';
# ログファイルの出力先
22 access_log /var/log/nginx/access.log main;
# + パフォーマンスチューニング
# ファイル読み込みとレスポンス送信にsenfile()システムコールを有効
# sendfile()を有効にすると、ファイルディスクリプタから直接クライアントに送信するため、
ファイル送信の性能が向上する
24 sendfile on;
# sendfileディレクティブが有効な場合、TCP_CORKオプションが使用される
# 最大パケットサイズでレスポンスヘッダとファイルを送信できるため、送信パケット数を最小化できる
# 基本的には有効にしておく
25 tcp_nopush on;
26 tcp_nodelay on;
# nginxに常時接続しているクライアントのタイムアウト時間
27 keepalive_timeout 65;
28 types_hash_max_size 2048;
# MIMEタイプの指定
# HTTPではContent-Typeヘッダフィールドの値にファイルの種類を指定する必要がある
30 include /etc/nginx/mime.types;
# デフォルトのMIMEタイプ
31 default_type application/octet-stream;
32
33 # Load modular configuration files from the /etc/nginx/conf.d directory.
34 # See http://nginx.org/en/docs/ngx_core_module.html#include
35 # for more information.
36 include /etc/nginx/conf.d/*.conf;
# + バーチャルサーバの定義
# バーチャルサーバはserverディレクティブに記述する
38 server {
# LISTENポート番号
# 「default_server」でデフォルトサーバとして指定
# 「default_server」が明示されていない場合は、一番上に記述したserverがデフォルトサーバ
39 listen 80 default_server;
40 listen [::]:80 default_server;
# ホスト名
# ワイルドカードも使用できる
41 server_name _;
# 公開ディレクトリ
42 root /usr/share/nginx/html;
43
44 # Load configuration files for the default server block.
45 include /etc/nginx/default.d/*.conf;
46
# マッチするURL毎にどのファイルを配信するのか
47 location / {
48 }
49
50 error_page 404 /404.html;
51 location = /40x.html {
52 }
53
54 error_page 500 502 503 504 /50x.html;
55 location = /50x.html {
56 }
57 }
TLS/SSLの設定
デフォルトでは全てコメントアウトされている.
58
59 # Settings for a TLS enabled server.
60 #
61 # server {
62 # listen 443 ssl http2 default_server;
63 # listen [::]:443 ssl http2 default_server;
64 # server_name _;
65 # root /usr/share/nginx/html;
66 #
67 # ssl_certificate "/etc/pki/nginx/server.crt";
68 # ssl_certificate_key "/etc/pki/nginx/private/server.key";
69 # ssl_session_cache shared:SSL:1m;
70 # ssl_session_timeout 10m;
71 # ssl_ciphers HIGH:!aNULL:!MD5;
72 # ssl_prefer_server_ciphers on;
73 #
74 # # Load configuration files for the default server block.
75 # include /etc/nginx/default.d/*.conf;
76 #
77 # location / {
78 # }
79 #
80 # error_page 404 /404.html;
81 # location = /40x.html {
82 # }
83 #
84 # error_page 500 502 503 504 /50x.html;
85 # location = /50x.html {
86 # }
87 # }
88
89 }
90