InfraLab
NGINX40 cmd

nginx チート集

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

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

このチートシートの使いどころ

nginx チートシートは、構文検証、server/location、リバースプロキシ、TLS、キャッシュ、rate limit、ログ、reload 運用をまとめた一覧です。対象は現行 nginx の一般的な設定構文です。公開前の設定検証、TLS 終端、HTTP ヘッダ確認、リダイレクトや upstream 障害の切り分けに使います。

40 / 40

nginx -t

設定ファイル全体の構文を検証する。

Example
sudo nginx -t
nginx -T

読み込まれる全設定を展開して表示する。

Example
sudo nginx -T | less
nginx -V

ビルドオプションと組み込みモジュールを確認する。

Example
nginx -V 2>&1 | tr " " "\n" | grep -- --with-http_ssl_module
nginx -s reload

master プロセスへ HUP を送り無停止で設定を再読込する。

Example
sudo nginx -s reload
nginx -s reopen

ログローテーション後にログファイルを開き直す。

Example
sudo nginx -s reopen
systemctl reload nginx

systemd 経由で graceful reload する。

Example
sudo systemctl reload nginx
server_name

仮想ホスト名を指定する。

Example
server { listen 80; server_name www.example.com example.com; }
location = /health

完全一致 location。最優先でヘルスチェックを返す。

Example
location = /health { return 200 "ok\n"; }
location ^~ /static/

前方一致を正規表現より優先させる。

Example
location ^~ /static/ { root /srv/www; expires 7d; }
location ~ \.php$

大文字小文字を区別する正規表現 location。

Example
location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php/php-fpm.sock; }
location ~* \.(png|jpg)$

大文字小文字を区別しない正規表現 location。

Example
location ~* \.(png|jpg|webp)$ { expires 30d; access_log off; }
try_files

静的ファイル優先でなければアプリへフォールバックする。

Example
location / { try_files $uri $uri/ /index.html; }
proxy_pass

上流アプリへ HTTP リクエストを転送する。

Example
location /api/ { proxy_pass http://127.0.0.1:3000/; }
proxy_set_header Host

元の Host ヘッダを上流へ渡す。

Example
proxy_set_header Host $host;
X-Forwarded-For

クライアント IP チェーンを上流へ渡す。

Example
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
X-Forwarded-Proto

元のスキームを上流へ渡す。

Example
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1

WebSocket や keepalive に必要な HTTP/1.1 を使う。

Example
proxy_http_version 1.1;
WebSocket Upgrade

Upgrade/Connection ヘッダを渡して WebSocket を中継する。

Example
proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";
upstream keepalive

上流接続をプールして再利用する。

Example
upstream app { server 127.0.0.1:3000; keepalive 32; }
listen 443 ssl + http2 on

TLS と HTTP/2 を有効にして待ち受ける。listen 443 ssl http2; は Nginx 1.25.1 で非推奨のため、現行は listen と http2 on; を別行で書く。

Example
# 現行 listen 443 ssl; http2 on; # 旧記法(1.25.1 で非推奨) listen 443 ssl http2;
ssl_certificate

証明書と秘密鍵を設定する。

Example
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols

TLS 1.2/1.3 のみに制限する。

Example
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers

TLS 1.2 向け cipher suite を明示する。

Example
ssl_ciphers HIGH:!aNULL:!MD5;
HSTS

HTTPS 固定をブラウザへ指示する。

Example
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
OCSP stapling

OCSP stapling を有効化する。

Example
ssl_stapling on; ssl_stapling_verify on; resolver 1.1.1.1 8.8.8.8 valid=300s;
proxy_cache_path

キャッシュゾーンと保存先を定義する。

Example
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:100m max_size=5g inactive=60m use_temp_path=off;
proxy_cache

location でキャッシュゾーンを使う。

Example
proxy_cache STATIC; proxy_cache_valid 200 301 10m; proxy_cache_valid 404 1m;
proxy_cache_use_stale

上流障害時に古いキャッシュを返す。

Example
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_cache_bypass

特定ヘッダでキャッシュを迂回する。

Example
proxy_cache_bypass $http_authorization; proxy_no_cache $http_authorization;
limit_req_zone

IP 単位のリクエストレート制限ゾーンを作る。

Example
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
limit_req

location で burst 付きレート制限を適用する。

Example
location /api/ { limit_req zone=api burst=20 nodelay; proxy_pass http://app; }
limit_conn_zone

同時接続数制限のキー空間を作る。

Example
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn

クライアントごとの同時接続数を制限する。

Example
limit_conn addr 20;
log_format main

request_time と upstream_response_time を含めたログ形式を定義する。

Example
log_format main "$remote_addr $request $status $body_bytes_sent $request_time $upstream_response_time";
access_log

アクセスログ形式と出力先を指定する。

Example
access_log /var/log/nginx/access.log main;
error_log levels

エラーログのレベルを指定する。

Example
error_log /var/log/nginx/error.log warn;
stub_status

基本メトリクスを公開する。

Example
location = /nginx_status { stub_status; allow 127.0.0.1; deny all; }
graceful restart

検証してから reload する運用手順。

Example
sudo nginx -t && sudo systemctl reload nginx
hot config rollback

失敗時に直前設定へ戻す。

Example
sudo cp /etc/nginx/nginx.conf{,.bak} && sudo nginx -t && sudo systemctl reload nginx
dynamic module load

動的モジュールを読み込む。

Example
load_module modules/ngx_http_geoip2_module.so;
対応ツール
Related