InfraLab
NGINX40 cmd

nginx チート集

nginx の構文検証、server/location、リバースプロキシ、TLS、proxy_cache、rate limit、ログ、reload 運用まで、Web フロントで頻出する設定をまとめたチート集。

更新日
2026-05-14
参照範囲
公式ドキュメント / man page / 主要ベンダーCLI
対象実装
主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
免責
OS とバージョン差分は実環境で確認してください。

40 / 40

CommandDescriptionExampleCopy
nginx -t設定ファイル全体の構文を検証する。sudo nginx -t
nginx -T読み込まれる全設定を展開して表示する。sudo nginx -T | less
nginx -Vビルドオプションと組み込みモジュールを確認する。nginx -V 2>&1 | tr " " "\n" | grep -- --with-http_ssl_module
nginx -s reloadmaster プロセスへ HUP を送り無停止で設定を再読込する。sudo nginx -s reload
nginx -s reopenログローテーション後にログファイルを開き直す。sudo nginx -s reopen
systemctl reload nginxsystemd 経由で graceful reload する。sudo systemctl reload nginx
server_name仮想ホスト名を指定する。server { listen 80; server_name www.example.com example.com; }
location = /health完全一致 location。最優先でヘルスチェックを返す。location = /health { return 200 "ok\n"; }
location ^~ /static/前方一致を正規表現より優先させる。location ^~ /static/ { root /srv/www; expires 7d; }
location ~ \.php$大文字小文字を区別する正規表現 location。location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php-fpm.sock; }
location ~* \.(png|jpg)$大文字小文字を区別しない正規表現 location。location ~* \.(png|jpg|webp)$ { expires 30d; access_log off; }
try_files静的ファイル優先でなければアプリへフォールバックする。location / { try_files $uri $uri/ /index.html; }
proxy_pass上流アプリへ HTTP リクエストを転送する。location /api/ { proxy_pass http://127.0.0.1:3000/; }
proxy_set_header Host元の Host ヘッダを上流へ渡す。proxy_set_header Host $host;
X-Forwarded-Forクライアント IP チェーンを上流へ渡す。proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
X-Forwarded-Proto元のスキームを上流へ渡す。proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1WebSocket や keepalive に必要な HTTP/1.1 を使う。proxy_http_version 1.1;
WebSocket UpgradeUpgrade/Connection ヘッダを渡して WebSocket を中継する。proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
upstream keepalive上流接続をプールして再利用する。upstream app { server 127.0.0.1:3000; keepalive 32; }
listen 443 ssl + http2 onTLS と HTTP/2 を有効にして待ち受ける。listen 443 ssl http2; は Nginx 1.25.1 で非推奨のため、現行は listen と http2 on; を別行で書く。# 現行 listen 443 ssl; http2 on; # 旧記法(1.25.1 で非推奨) listen 443 ssl http2;
ssl_certificate証明書と秘密鍵を設定する。ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocolsTLS 1.2/1.3 のみに制限する。ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphersTLS 1.2 向け cipher suite を明示する。ssl_ciphers HIGH:!aNULL:!MD5;
HSTSHTTPS 固定をブラウザへ指示する。add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
OCSP staplingOCSP stapling を有効化する。ssl_stapling on; ssl_stapling_verify on; resolver 1.1.1.1 8.8.8.8 valid=300s;
proxy_cache_pathキャッシュゾーンと保存先を定義する。proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:100m max_size=5g inactive=60m use_temp_path=off;
proxy_cachelocation でキャッシュゾーンを使う。proxy_cache STATIC; proxy_cache_valid 200 301 10m; proxy_cache_valid 404 1m;
proxy_cache_use_stale上流障害時に古いキャッシュを返す。proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_bypass特定ヘッダでキャッシュを迂回する。proxy_cache_bypass $http_authorization; proxy_no_cache $http_authorization;
limit_req_zoneIP 単位のリクエストレート制限ゾーンを作る。limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
limit_reqlocation で burst 付きレート制限を適用する。location /api/ { limit_req zone=api burst=20 nodelay; proxy_pass http://app; }
limit_conn_zone同時接続数制限のキー空間を作る。limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_connクライアントごとの同時接続数を制限する。limit_conn addr 20;
log_format mainrequest_time と upstream_response_time を含めたログ形式を定義する。log_format main "$remote_addr $request $status $body_bytes_sent $request_time $upstream_response_time";
access_logアクセスログ形式と出力先を指定する。access_log /var/log/nginx/access.log main;
error_log levelsエラーログのレベルを指定する。error_log /var/log/nginx/error.log warn;
stub_status基本メトリクスを公開する。location = /nginx_status { stub_status; allow 127.0.0.1; deny all; }
graceful restart検証してから reload する運用手順。sudo nginx -t && sudo systemctl reload nginx
hot config rollback失敗時に直前設定へ戻す。sudo cp /etc/nginx/nginx.conf{,.bak} && sudo nginx -t && sudo systemctl reload nginx
dynamic module load動的モジュールを読み込む。load_module modules/ngx_http_geoip2_module.so;
Related