キャッシュおよびバージョン戦略コンフィグレータ

最も厄介な障害の一種:サーバーは常に 200 を返しているが、ページは常にエラーを報告しています。 当社のバックエンドスクリプトは nginx のため、 expires 7d ブラウザが 7 日間キャッシュしており、スクリプトの改版後もブラウザは旧バージョンを実行し続け、新しいデータ形式をレンダリング時にクラッシュしました。コードはすべての例外を「サーバーから読み込めない」と報告していたため、長時間サーバーを調査しましたが、実際にはサーバーは常に正常でした。このツールはファイルタイプ別に相互干渉しないキャッシュ戦略を生成し、レスポンスヘッダー自己診断スクリプトも提供します。

無料・ ログイン不要 ローカル生成・ コンテンツはアップロードされません 対応事故・ 長期間キャッシュによるバージョン不一致 → バックエンドの偽障害

1サイト情報

フォーマット推奨事項 YYYYMMDD + 連番アルファベット(本日初版 a、同日に再修正 b)。

2利用可能なファイルタイプを選択してください

不確実な項目はすべてチェックを入れ、余分なフラグメントは削除すればよい。見落とされたタイプこそが障害の原因になります。

3ポリシー選択

結果ポリシー概要

出力nginx キャッシュスニペット

0 行
—

出力レスポンスヘッダー自己診断スクリプト

0 行
—
設定を変更した後は必ず実行してください:参照されるのはレスポンスヘッダー、これは設定ファイルではありません。設定ファイルは正しく記述されていても、実際には適用されていないことがよくあります。

クイックリファレンス現象 → 真の原因 → どう確認するか

現象真犯人どう確認するか
CSS / JS を変更したにもかかわらず、本番環境で「変更が反映されていないように見える」長期間キャッシュ + 参照先にバージョン番号が付与されていないcurl -I max-age を確認してください。新しいバージョン番号で再デプロイします。
サーバーのログはすべて200ですが、ページには「データを読み込めません」と表示されます。ブラウザが古いスクリプトを実行し、新しいデータ形式をレンダリングしようとしてクラッシュし、catch によりネットワーク障害と誤って報告されます。コンソールでエラー行を確認し、スクリプトの no-cache を設定した後に Ctrl+F5 を押します。
一部のページは新しいが、他のページは古いままです同じCSSが複数のページから参照されているが、そのうちいくつかのページのみバージョン番号を変更しました。サイト全体で該当リソース名を検索し、一括でバージョンを上げます
バックエンドで変更した後、数日待たないと反映されませんバックエンドページは長期間キャッシュされるように設定されていますバックエンドは一律 no-store
データが常に最も古い状態のままデータインターフェースが CDN やブラウザによってキャッシュされます。APIインターフェースはno-store;fetchにはタイムスタンプパラメーターを付与
ローカルの curl では正常に動作するが、ユーザーのブラウザでは動作しないCDN のレイヤーで依然として古いバージョンがキャッシュされています使用 -H 'Cache-Control: no-cache' 比較し、CDN コントロールパネルで更新します
この罠は私たちが既に踏んでいます

1・サーバーは 200 を返すが、ページでエラーが発生します。バックグラウンドスクリプトが expires 7d キャッシュにより、改版後にブラウザが依然として古いスクリプトを実行し、その古いスクリプトが新しいデータ形式をパースする際にクラッシュします。また、catch がレンダリング例外を「サーバーから読み込めない」と誤って報告するため、トラブルシューティングの方向性が完全にずれます。

2・対策:バックエンドスクリプトを個別にno-cacheに設定します。location = /assets/js/admin.js { add_header Cache-Control "no-cache"; }— 精確一致(location =)は、静的リソース向けの正規表現による長期間キャッシュルールを上書きします。

3・エラーメッセージは分岐処理が必要です。「データは到達したがレンダリングがクラッシュ」および「ネットワーク要求が失敗」は、必ず別々のメッセージとして報告してください。そうでないと、トラブルシューティングの方向性が2日間もずれます。

4・シンプルなルール:1つだけ覚えれば十分です。長期間キャッシュを設定する場合は必ずバージョン番号を含める必要があります。バージョン番号なしのリソースは一切長期間キャッシュしてはいけません。