
説明できない奇妙な行動を観察しています。
私は Chrome バージョン 110.0.5481.77 (公式ビルド) (64 ビット) を使用しています
バンドルされたフロントエンド アプリを提供するために nginx/1.22.1 を実行しています。
IP:443 でアプリ バンドルをリクエストすると、パブリック ディレクトリにない不完全なバンドルが受信され、コンソールにエラーが表示されます。
net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK).
サーバーのリモート アドレスは、私のリモート アドレス (ポート 443) と一致します。
開発ツールでの応答のサイズは 65.5 KB です。
Response Header Server: nginx/1.22.0 ETag: W/"SOME ETAG HASH"
この応答は、NGINX サーバーが実行中でないときにも返されます。つまり、明確に言えば、
時々、NGINX サーバーは正しい静的ファイルを送信します。しかし、しばらくすると、正しい静的ファイルを送信しなくなり、不完全なバンドルが送信されます。
NGINX サーバーが実行されていない場合でも、このバンドルは送信されます。
私が困惑しているのは、次の理由です:
- 独自のキャッシュを設定していない
- 間違ったバンドルで指定された nginx/1.22.0 ではなく nginx/1.22.1 を使用しています
- この応答を受け取ったときにサーバーが起動していない可能性があります
- 私のホストで netstat -nptwc を実行すると、次のメッセージが表示されます。
tcp 0 0 192.168.1.14:42384 IP:443 TIME_WAIT - tcp 0 0 192.168.1.14:49090 IP:443 ESTABLISHED 245476/chrome --typ
netstat -nptwc
私のホストでは、私のホストからのトラフィックが表示されません。- このバンドルが返されたときに、ホスト上でサーバー トラフィックは表示されません。
さて、ここで何が起こっているのでしょうか...Web サーバーの応答はサーバー外のどこかにキャッシュされているのでしょうか???
答え1
応答がプロキシ サーバーやコンテンツ配信ネットワーク (CDN) など、サーバー外部のどこかにキャッシュされている可能性があります。
CDN (CloudFlare) 経由で Web サイトにアクセスすると、CDN は画像や JavaScript ファイルなどの特定の静的ファイルをユーザーに近いサーバーにキャッシュするため、Web サイトのパフォーマンスが向上します。CDN キャッシュから不完全なバンドルが提供されている可能性があり、これが NGINX サーバーが実行していない場合でも応答が返される理由である可能性があります。
もう 1 つの可能性は、ブラウザと NGINX サーバーの間にキャッシュ プロキシが存在することです。これは、サーバーにインストールされているリバース プロキシである場合もあれば、ネットワークまたは ISP ネットワーク上の別の場所にインストールされている別のプロキシ サーバーである場合もあります。
ネットワーク構成をチェックして、ドメインのコンテンツを提供するように設定されているキャッシュ プロキシまたは CDN があるかどうかを確認してください。また、ブラウザのキャッシュをクリアし、問題の原因となっている可能性のあるキャッシュ プラグインまたは拡張機能を無効にしてみることもできます。
答え2
私の場合、LAN ゲートウェイで NAT の問題が発生していました。パブリック IP へのトラフィックは 2 つのサーバーにルーティングされていましたが、そのうちの 1 つは認識していませんでした。