Nginx設定クイックリファレンス
Nginxのよく使う設定断片クイックリファレンス、設定コードの迅速な検索とコピー
ワークプロセス数を自動設定(通常はCPUコア数と同じ)
worker_processes auto;
各ワークプロセスの最大接続数を設定
events {
worker_connections 1024;
}MIMEタイプ設定を含む
include /etc/nginx/mime.types; default_type application/octet-stream;
効率的なファイル転送を有効にする
sendfile on; tcp_nopush on; tcp_nodelay on;
長時間接続のタイムアウト時間を設定
keepalive_timeout 65;
クライアントリクエストボディの最大サイズを設定
client_max_body_size 100M;
Nginxのバージョン番号を隠す
server_tokens off;
基本的なServerブロック設定
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
}複数のドメインを設定
server_name example.com www.example.com;
ワイルドカードドメインを設定
server_name *.example.com;
デフォルトサーバーを設定
listen 80 default_server;
IPv6アドレスを監視
listen [::]:80;
ルートディレクトリまたは別名を設定
root /var/www/html; # またはaliasを使用 alias /var/www/files/;
正確なパスマッチング
location = /path {
# 精確マッチング
}接頭辞マッチングパス
location /api/ {
# 接頭辞マッチング
}正規表現マッチング
location ~ \.php$ {
# 正規表現マッチング(大文字小文字区別)
}大文字小文字区別なしの正規表現マッチング
location ~* \.\(jpg|jpeg|png|gif\)$ {
# 正規表現マッチング(大文字小文字区別なし)
}優先プレフィックス一致(正規表現より優先)
location ^~ /images/ {\n # 優先プレフィックス一致\n}ファイルの試行順序(SPAアプリでよく使われる)
location / {\n try_files $uri $uri/ /index.html;\n}内部リクエストのみアクセス可能
location /internal/ {\n internal;\n}基本的なリバースプロキシ設定
location /api/ {\n proxy_pass http://backend:3000/;\n}プロキシリクエストヘッダーの設定
proxy_set_header Host $host;\nproxy_set_header X-Real-IP $remote_addr;\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_set_header X-Forwarded-Proto $scheme;
WebSocketプロキシ設定
location /ws/ {\n proxy_pass http://backend:3000/;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}上流サーバーグループの定義
upstream backend {\n server 127.0.0.1:3000;\n server 127.0.0.1:3001;\n keepalive 32;\n}負荷分散設定
upstream backend {\n least_conn; # または ip_hash;\n server 127.0.0.1:3000;\n server 127.0.0.1:3001;\n}プロキシタイムアウト設定
proxy_connect_timeout 60s;\nproxy_send_timeout 60s;\nproxy_read_timeout 60s;
プロキシバッファ設定
proxy_buffering on;\nproxy_buffer_size 4k;\nproxy_buffers 8 4k;
基本的なSSL設定
server {\n listen 443 ssl http2;\n ssl_certificate /path/to/cert.pem;\n ssl_certificate_key /path/to/key.pem;\n}SSLプロトコルバージョンの設定
ssl_protocols TLSv1.2 TLSv1.3;
暗号スイートの設定
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;\nssl_prefer_server_ciphers on;
SSLセッションキャッシュ
ssl_session_cache shared:SSL:10m;\nssl_session_timeout 1d;
HTTPをHTTPSにリダイレクト
server {\n listen 80;\n server_name example.com;\n return 301 https://$server_name$request_uri;\n}HSTSを有効化
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
OCSP Staplingを有効化
ssl_stapling on;\nssl_stapling_verify on;\nresolver 8.8.8.8 8.8.4.4 valid=300s;
静的リソースキャッシュ
location ~* \\.\.(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ {\n expires 30d;\n add_header Cache-Control "public, immutable";\n}キャッシュを無効化
location /api/ {\n add_header Cache-Control "no-store, no-cache, must-revalidate";\n}プロキシキャッシュ設定
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g;\n\nlocation / {\n proxy_cache my_cache;\n proxy_cache_valid 200 1d;\n}ETagを有効化
etag on;
条件リクエストを有効化
if_modified_since before;
基本的なGzip圧縮設定
gzip on;\ngzip_vary on;\ngzip_min_length 1024;\ngzip_comp_level 6;
圧縮するMIMEタイプの設定
gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml;
プロキシリクエストに圧縮を有効化
gzip_proxied any;
プリコンプレッションファイルの有効化
gzip_static on;
CORSクロスドメイン設定
add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,Content-Type";
XSSおよびクリックジャッキング防护
add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options SAMEORIGIN;
コンテンツセキュリティポリシー
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'";
リクエストレート制限
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
location /api/ {
limit_req zone=one burst=20 nodelay;
}隠しファイルへのアクセス禁止
location ~ /\. {
deny all;
}IPホワイトリスト
location /admin/ {
allow 192.168.1.0/24;
deny all;
}アクセスログ設定
access_log /var/log/nginx/access.log;
エラーログ設定
error_log /var/log/nginx/error.log warn;
カスタムログフォーマット
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';JSON形式ログ
log_format json escape=json '{"time":"$time_iso8601","ip":"$remote_addr","method":"$request_method","uri":"$uri","status":$status}';アクセスログの無効化
access_log off;
条件ログ(エラーのみ記録)
map $status $loggable {
~^[23] 0;
default 1;
}
access_log /var/log/nginx/access.log combined if=$loggable;ファイルディスクリプタキャッシュ
open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2;
マルチ接続受信とepollの有効化
events {
multi_accept on;
use epoll;
}FastCGIキャッシュ
fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=fastcgi:10m;
location ~ \.php$ {
fastcgi_cache fastcgi;
fastcgi_cache_valid 200 1h;
}接続数制限
limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 100;
タイムアウト最適化
client_body_timeout 12; client_header_timeout 12; send_timeout 10;
📖ツール紹介
機能の特徴
❓よくある質問
🔗関連ツール
Cron式解析ツール
Cron式の文法を検証し、今後実行される時刻をプレビューします。
JSONをCSVへ変換
JSONデータをCSV形式に変換
JSONをYAMLに変換
JSONデータをYAML形式に変換する
JSONをXMLへ変換するツール
JSONデータをXML形式に変換する
YAMLをJSONへ
YAML設定をJSON形式データへ変換
JSONフォーマッター
JSONデータの整形・検証・圧縮
JSONの可視化
ツリー構造でJSONデータを表示
JSONデータ生成器
テスト用のモックJSONデータを生成します。
i18n JSON 翻訳ツール
JSON言語ファイル全体を一括翻訳します。基本の内容を貼り付け、ターゲット言語を選択すると、ツールは平坦化されたキーを使用して OpenRouter API を呼び出します。
JSON差异对比
比较两个JSON数据的差异
QRコード生成器
カスタムQRコード画像を生成する
SVGプレースホルダー画像生成器
カスタムSVGプレースホルダー画像を生成
Base64画像変換ツール
画像とBase64エンコードの相互変換ツール
UUIDジェネレータ
UUIDを一括生成
パスワード生成器
安全で信頼性の高いランダムパスワードを生成
Base64 エンコード・デコード
Base64 文字列のエンコードとデコードツール
URL エンコード/デコード
URL文字列のエンコードとデコードツール
MD5ハッシュ生成器
MD5ハッシュ値を生成するツール
SHA256ハッシュ生成器
SHA256ハッシュ値を生成するツール
SHA1ハッシュ生成器
SHA1ハッシュ値を生成するツール
Hexエンコード・デコードツール
16進数文字列のエンコード/デコードツール
バイナリエンコードデコーダ
2進数文字列エンコード/デコードツール
AES暗号化/復号器
AES対称暗号アルゴリズムの暗号化/復号ツール
RSA暗号化・復号器
RSA非対称暗号アルゴリズムツール
HMACジェネレーター
HMACメッセージ認証コード生成ツール
IPアドレス検索
IPアドレスの地理的位置とネットワーク情報を照会します。
ミリ秒時間変換ツール
ミリ秒タイムスタンプと yyyy-MM-dd HH:mm:ss 文字列の間で変換します。