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
| Command | Description | Example | Copy |
|---|---|---|---|
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 reload | master プロセスへ HUP を送り無停止で設定を再読込する。 | sudo nginx -s reload | |
nginx -s reopen | ログローテーション後にログファイルを開き直す。 | sudo nginx -s reopen | |
systemctl reload nginx | systemd 経由で 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.1 | WebSocket や keepalive に必要な HTTP/1.1 を使う。 | proxy_http_version 1.1; | |
WebSocket Upgrade | Upgrade/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 on | TLS と 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_protocols | TLS 1.2/1.3 のみに制限する。 | ssl_protocols TLSv1.2 TLSv1.3; | |
ssl_ciphers | TLS 1.2 向け cipher suite を明示する。 | ssl_ciphers HIGH:!aNULL:!MD5; | |
HSTS | HTTPS 固定をブラウザへ指示する。 | add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; | |
OCSP stapling | OCSP 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_cache | location でキャッシュゾーンを使う。 | 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_zone | IP 単位のリクエストレート制限ゾーンを作る。 | limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s; | |
limit_req | location で 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 main | request_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; |