nginx 設定生成ツール
シンプルなトグルから完全なnginxのサーバーブロックを、ブラウザー内でリアルタイムに作成します。入力はお使いのデバイスに留まります。
あなたのドメイン・パス・証明書の場所は、設定を作成するためにブラウザー内でのみ使われ、アップロードされることはありません。それでも、実際の秘密鍵の内容をどのツールにも貼り付けないようにしてください。
ウェブルートのファイル権限が必要ですか?chmod計算ツールをお試しください。
nginx 設定生成ツール について
このnginx設定生成ツールは、いくつかの入力とトグルを、sites-availableにそのまま置ける完全で有効なnginxのサーバーブロックに変換します。静的サイト(root + index に try_files)か、リバースプロキシ(標準の Host・X-Real-IP・X-Forwarded-For・X-Forwarded-Proto ヘッダーを備えた proxy_pass、加えて任意のWebSocketアップグレード行)を選べます。SSLをオンにすると443でリッスンし、ssl_certificate と ssl_certificate_key を設定し、HTTPをHTTPSへ301でリダイレクトする2つ目のサーバーブロックを出力します。gzip、長期間の静的アセットキャッシュ、client_max_body_size の上限、www→非wwwの正規化リダイレクトを、それぞれワンクリックで追加できます。nginx設定生成ツールとして、波括弧のバランスとインデントをきれいに保ち、結果をコピーするか <domain>.conf としてダウンロードできます。すべてはブラウザー内で動作するため、ドメインとパスはお使いのデバイスに留まります。
機能
- root・index・try_files のlocationブロックを備えた静的サイトモード
- proxy_pass と標準の proxy_set_header 行を備えたリバースプロキシモード
- proxy_http_version・Upgrade・Connection ヘッダーによる任意のWebSocketサポート
- listen 443 ssl とHTTP→HTTPSの301リダイレクトサーバーを追加するSSLトグル
- text・JSON・JavaScript・CSS・XML・SVG 向けに調整されたgzipブロック
- expires と immutable な Cache-Control を備えた静的アセットキャッシュのlocation
- client_max_body_size の入力と、www↔非wwwの正規化リダイレクト
- サーバーブロックをコピー、または example.com.conf としてダウンロード
nginx 設定生成ツール の使い方
- ドメインとリッスンポートを入力し、静的サイトかリバースプロキシかを選びます。
- rootとindex、またはアプリ向けの proxy_pass のアップストリームを入力します。
- 必要に応じてSSL・gzip・キャッシュ・ボディサイズ・wwwリダイレクトを切り替えます。
- 右側でリアルタイムのnginx設定を読み、.conf を「コピー」または「ダウンロード」します。
例
入力
Domain: example.com
Mode: Reverse proxy
Upstream: http://127.0.0.1:3000
SSL: on
出力
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/ssl/certs/example.com.crt;
ssl_certificate_key /etc/ssl/private/example.com.key;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
443のリバースプロキシと、対応するHTTP→HTTPSのリダイレクトブロックです。
よくあるエラーとトラブルシューティング
- nginx -t が「cannot load certificate」を報告する、またはSSLブロックが起動に失敗する。 — ssl_certificate をfullchainファイルに、ssl_certificate_key を対応する秘密鍵に向け、両方のパスが存在しnginxから読めることを確認してください。
- リバースプロキシ先のアプリが誤ったクライアントIPを表示する、またはHTTPS背後で壊れる。 — 生成された proxy_set_header 行を残し、Host・X-Real-IP・X-Forwarded-For・X-Forwarded-Proto がアップストリームに届くようにし、アプリ側で正しいヘッダーから読んでください。
- WebSocket接続が400で切れる、またはアップグレードに失敗する。 — WebSocketサポートをオンにして、locationに proxy_http_version 1.1 と、nginxがws/wssをプロキシするのに必要な Upgrade・Connection "upgrade" ヘッダーを追加してください。
- 大きなアップロードが413 Request Entity Too Largeを返す。 — client_max_body_size を最大のアップロードより大きな値(例:20Mや100M)に設定し、nginxをリロードしてください。
よくある質問
- nginxでリバースプロキシを設定するには?
- 「リバースプロキシ」を選び、proxy_pass にアップストリーム(例:http://127.0.0.1:3000)を入力すると、生成ツールが標準の Host・X-Real-IP・X-Forwarded-For・X-Forwarded-Proto ヘッダーを備えた location / ブロックを追加します。アプリがws/wssを使う場合はWebSocketサポートを有効にしてください。
- nginxのサーバーブロックはどこに置きますか?
- DebianやUbuntuでは、生成したファイルを /etc/nginx/sites-available/example.com として保存し、sites-enabled にシンボリックリンクします。他の多くのディストリビューションでは /etc/nginx/conf.d/example.com.conf に置き、nginx -t を実行してリロードします。
- SSLトグルは設定をどう変えますか?
- メインのサーバーを 443 ssl でリッスンするように切り替え、ssl_certificate と ssl_certificate_key を追加し、ポート80上にすべてのリクエストを https:// へ301でリダイレクトする2つ目のサーバーブロックを出力するため、訪問者は常に安全なサイトに到達します。
- ここでの静的サイトとリバースプロキシの違いは何ですか?
- 静的モードは index と try_files の location を使い root ディレクトリからファイルを配信し、HTML・SPA・ビルド済みアセットに最適です。リバースプロキシモードはファイルを配信する代わりに、proxy_pass とプロキシヘッダーでリクエストをアップストリームのアプリサーバーへ転送します。
- gzipと静的アセットのキャッシュを追加できますか?
- はい。gzipトグルは text・JSON・JavaScript・CSS・XML・SVG 向けに調整されたgzipブロックを追加し、キャッシュトグルは一般的なアセット拡張子に対し30日の expires と immutable な Cache-Control ヘッダーを設定する location を追加します。
- 私のドメインや設定はどこかに送信されますか?
- いいえ。このnginx設定生成ツールは完全にブラウザー内で動作するため、入力したドメイン・パス・証明書の場所はお使いのデバイス上で処理され、生成されたファイルがアップロードされることはありません。
関連ツール
すべての ArrayKit ツール