Почему клиент браузера получает ответы от сервера NGINX по моему удаленному адресу, если мой сервер NGINX не работает?

Почему клиент браузера получает ответы от сервера NGINX по моему удаленному адресу, если мой сервер NGINX не работает?

Я наблюдаю странное поведение, которое не могу объяснить.

  • Я использую 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 не работает, этот пакет все равно отправляется.

Я озадачен, потому что:

  1. Я не настроил свой собственный кэш
  2. Я использую nginx/1.22.1, а не nginx/1.22.0, указанный в неправильном пакете
  3. Мой сервер может быть недоступен, когда я получу этот ответ
  4. 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
    
  5. netstat -nptwcна моем хосте не отображается трафик с моего хоста.
  6. Я не вижу никакого трафика сервера на хосте при возврате этого пакета.

Хорошо, так что же здесь происходит...кэшируется ли ответ моего веб-сервера где-то за пределами моего сервера???

решение1

Возможно, ответ кэшируется где-то за пределами вашего сервера, например, на прокси-сервере или в сети доставки контента (CDN).

Когда вы получаете доступ к веб-сайту через CDN, например (CloudFlare), CDN будет кэшировать определенные статические файлы, такие как изображения или файлы JavaScript, на серверах, которые находятся ближе к пользователю, что может улучшить производительность веб-сайта. Возможно, что неполный пакет обслуживается из кэша CDN, что может объяснить, почему ответ все еще возвращается, даже если ваш сервер NGINX не запущен.

Другая возможность заключается в том, что между вашим браузером и вашим сервером NGINX есть кэширующий прокси. Это может быть обратный прокси, установленный на вашем сервере, или это может быть отдельный прокси-сервер, установленный в другом месте в вашей сети или в сети вашего провайдера.

Вы можете попробовать проверить конфигурацию сети, чтобы узнать, есть ли какие-либо кэширующие прокси или CDN, настроенные на обслуживание контента для вашего домена. Вы также можете попробовать очистить кэш браузера и отключить любые плагины или расширения кэширования, которые могут вызывать проблему.

решение2

В моем случае была проблема с NAT на нашем шлюзе LAN. Трафик на публичный IP направлялся на два сервера, об одном из которых мы не знали.

Связанный контент