本番環境向け自己診断 + nginx設定ジェネレーター

「nginx -t」が成功したからといって、サイトが実際に開けるとは限りません。 当サイト全体が利用不能になった事例がありました:構文チェックはすべて合格でしたが、正確なlocationディレクティブにおける301リダイレクトとtry_filesが相互にリダイレクトし、ブラウザが「リダイレクト回数が多すぎます」と直接エラーを表示しました。このツールは2つのものを提供します:nginx設定の骨格(すべての落とし穴がコメントに記載されています)と、実際のHTTP自己診断スクリプト(構文チェックだけでなく、ステータスコードおよびリダイレクト回数も確認します)。

無料・ ログイン不要 ローカル生成・ コンテンツはアップロードされません 対応事故・ リダイレクト無限ループにより、サイト全体がアクセス不能になります。

1サイト情報

2自己診断対象のパス

1行に1つ記述します。ホームページは必須であり、サブページは最低限それぞれ1つずつ必要です。

3保護スイッチ

出力 1本番環境用自己診断スクリプト

0 行
—
デプロイ完了後に1回実行:bash deploy-check.sh。すべて緑色になった時点で、本番環境への展開が完了です。

出力 2nginx 設定スニペット

0 行
—
変更後:nginx -t → systemctl reload nginx → 上記のセルフチェックスクリプトを再度実行します。構文チェックが通ったからといって、サイトが開くとは限りません。

マニフェストリリース前に必ず実施する 8 つの手順

この罠は私たちが既に踏んでいます

1・正確な location + 301 により無限ループが発生します。1つ記述する location = /path { return 301 …; }、そして try_files また、リクエストを内部で同じ location へ再びリダイレクトすると、ブラウザが「リダイレクト回数が多すぎます」と報告し、サイト全体が開けなくなります。nginx -t 完全に検出できません。

2 · 長期間キャッシュ + バージョン番号なし = 変更が「反映されていないように見える」。同じミスを私たちは3回繰り返しました(CSS で2回、JS で1回)。ルールは単純です:expires を設定した場合、CSS/JS にも同様に設定する必要があります。 ?v=;1回変更 → 1回バージョンアップ。

3・<base href> はすべての相対リソースより前に記述する必要があります。に記述する <link> その後、サブページが CSS を誤ったディレクトリで解析し、スタイルがサイレントに無効化されます——親ページでは一切検知できません。

4・バックエンドデータを basic auth の後ろに配置して fetch で使用しないでください。ブラウザによるサブリクエストの資格情報キャッシュは制御不能であり、ページは「読み込み中」のまま永遠に固まる。これを「ページログイン+データに暗号化キー付きパラメータ付与」方式に変更。

5 · ローカルプロキシによる誤検知。サイトの稼働状態を判定する際は、必ずこれを追加します。 --noproxy '*';我々は、プロキシが返した 410 を「サイトがダウンした」と誤判定したことがありますが、実際には 200 でした。