
Я наблюдаю странное поведение, которое не могу объяснить.
Я использую Chrome версии 110.0.5481.77 (официальная сборка) (64-бит)
Я использую nginx/1.22.1 для обслуживания связанного фронтенд-приложения.
При запросе моего пакета приложений по IP:443 я получаю неполный пакет, которого нет в моем публичном каталоге, а в консоли появляется ошибка:
net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK).
Удаленный адрес сервера совпадает с моим удаленным адресом, порт 443.
Размер ответа в инструментах разработки составляет 65,5 КБ.
Response Header Server: nginx/1.22.0 ETag: W/"SOME ETAG HASH"
Этот ответ также возвращается, когда мой сервер NGINX НЕ РАБОТАЕТ. Итак, для ясности:
Иногда мой сервер NGINX отправляет правильные статические файлы. Но через некоторое время он перестает отправлять правильные статические файлы и отправляет неполный пакет.
Когда мой сервер NGINX не работает, этот пакет все равно отправляется.
Я озадачен, потому что:
- Я не настроил свой собственный кэш
- Я использую nginx/1.22.1, а не nginx/1.22.0, указанный в неправильном пакете
- Мой сервер может быть недоступен, когда я получу этот ответ
- 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
на моем хосте не отображается трафик с моего хоста.- Я не вижу никакого трафика сервера на хосте при возврате этого пакета.
Хорошо, так что же здесь происходит...кэшируется ли ответ моего веб-сервера где-то за пределами моего сервера???
решение1
Возможно, ответ кэшируется где-то за пределами вашего сервера, например, на прокси-сервере или в сети доставки контента (CDN).
Когда вы получаете доступ к веб-сайту через CDN, например (CloudFlare), CDN будет кэшировать определенные статические файлы, такие как изображения или файлы JavaScript, на серверах, которые находятся ближе к пользователю, что может улучшить производительность веб-сайта. Возможно, что неполный пакет обслуживается из кэша CDN, что может объяснить, почему ответ все еще возвращается, даже если ваш сервер NGINX не запущен.
Другая возможность заключается в том, что между вашим браузером и вашим сервером NGINX есть кэширующий прокси. Это может быть обратный прокси, установленный на вашем сервере, или это может быть отдельный прокси-сервер, установленный в другом месте в вашей сети или в сети вашего провайдера.
Вы можете попробовать проверить конфигурацию сети, чтобы узнать, есть ли какие-либо кэширующие прокси или CDN, настроенные на обслуживание контента для вашего домена. Вы также можете попробовать очистить кэш браузера и отключить любые плагины или расширения кэширования, которые могут вызывать проблему.
решение2
В моем случае была проблема с NAT на нашем шлюзе LAN. Трафик на публичный IP направлялся на два сервера, об одном из которых мы не знали.