Nginx 設定生成(server ブロック)
nginx の server ブロックを作成します。静的サイト、SPA、PHP-FPM、リバースプロキシに対応し、HTTPS、リダイレクト、gzip、キャッシュ、WebSocket を設定できます。
再読み込みの前に証明書を取得してください。ないとファイルがなく nginx -t が失敗します。/var/www/letsencrypt を作成し、まず 80 番ポートのブロックだけで起動してから、certbot certonly --webroot -w /var/www/letsencrypt -d example.com -d www.example.com を実行してください。ワイルドカードの名前には DNS チャレンジが必要です。
リバースプロキシモードでは、静的アセットのキャッシュはアプリ側に任せます。そちらで Cache-Control ヘッダーを設定してください。
ファイルを /etc/nginx/sites-available/example.com(Debian/Ubuntu では sites-enabled にリンク)または /etc/nginx/conf.d/example.com.conf として保存し、テストして再読み込みしてください。
nginx は Web の多くを支えていますが、設定は微妙な間違いを起こしやすいものです。セミコロンの抜け、HTTPS リダイレクトのループ、location ブロックの中で黙って消えるセキュリティヘッダー、などです。この生成ツールは、静的サイト、シングルページアプリ、PHP-FPM のサイト、別ポートのアプリへのリバースプロキシ向けに、コメント付きの完全な server ブロックを作成します。Let’s Encrypt の HTTPS、正規ホストへのリダイレクト、HTTP/2、gzip、アセットのキャッシュ、セキュリティヘッダー、WebSocket、任意のレート制限に対応しています。
使い方
- ドメイン名(最初のものがメイン)を入力し、サイトの種類を選びます。
- Web ルート、アプリのアドレス、または PHP-FPM のソケットを入力します。
- HTTPS、リダイレクト、必要な追加機能にチェックを入れます。
- ファイルを保存し、証明書を取得してから、nginx -t を実行して再読み込みします。
計算式
HTTPS layout: server :80 (ACME challenge + 301 to https) → server :443 for the extra names (301 to the main name) → server :443 for the main name with the site configuration.
try_files が何を返すかを決めます。静的ファイルは $uri $uri/ =404、シングルページアプリのフォールバックは /index.html、PHP のフロントコントローラーは /index.php?$query_string です。server ブロックの add_header の行は、独自の add_header を持つ location には継承されないため、生成される location では add_header を使いません。
計算例
example.com と www.example.com を HTTPS で http://127.0.0.1:3000 へのリバースプロキシにすると、出力には 3 つの server ブロックがあります。80 番ポートのリダイレクト、443 の www → example.com、メインのサイトで、メインの location には Host、X-Forwarded、WebSocket アップグレードのヘッダーとともに proxy_pass http://127.0.0.1:3000; が入ります。
よくある質問
map ブロックはどこに置きますか?
map と limit_req_zone は http コンテキストに属します。/etc/nginx/conf.d/ と sites-enabled/ のファイルは http の中に読み込まれるため、生成されたファイルをそのままそこに保存できます。
"listen 443 ssl http2" ではなく "http2 on;" なのはなぜですか?
nginx 1.25.1 で独立した http2 ディレクティブが導入され、listen のパラメーターは非推奨になりました。一部のディストリビューションの 1.18 や 1.22 のパッケージなど古いバージョンでは、新しい構文のオプションをオフにしてください。
HSTS はすぐに有効にしてよいですか?
いいえ。ブラウザーは HSTS を見ると、max-age の間は通常の HTTP を拒否します。HTTPS がすべての場所で動作してから有効にし、すべてのサブドメインの準備ができてから includeSubDomains を追加してください。
出典
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/nginx-config-generator/
このツールを引用する
kakaoCalc. (2026, November 8). Nginx 設定生成(server ブロック). https://kakao.mobile/ja/tools/nginx-config-generator/
“Nginx 設定生成(server ブロック).” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/nginx-config-generator/.