Por que o cliente do navegador recebe respostas de um servidor NGINX em meu endereço remoto se meu servidor NGINX está inativo?

Por que o cliente do navegador recebe respostas de um servidor NGINX em meu endereço remoto se meu servidor NGINX está inativo?

Estou observando um comportamento estranho que não consigo explicar.

  • Estou usando o Chrome versão 110.0.5481.77 (versão oficial) (64 bits)

  • Estou executando o nginx/1.22.1 para servir um aplicativo front-end integrado.

  • Quando solicito meu pacote de aplicativos em IP:443, recebo um pacote incompleto que não está em meu diretório público e há um erro no console: net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK).

  • O endereço remoto do servidor corresponde ao meu endereço remoto, porta 443.

  • O tamanho da resposta é 65,5 KB nas ferramentas de desenvolvimento.

    Response Header Server: nginx/1.22.0
    
    ETag: W/"SOME ETAG HASH"
    
  • Esta resposta também é retornada quando meu servidor NGINX NÃO ESTÁ EM FUNCIONAMENTO. Então, para ser claro:

  • Às vezes, meu servidor NGINX envia os arquivos estáticos corretos. Mas depois de algum tempo ele não envia mais os arquivos estáticos corretos e envia um pacote incompleto.

  • Quando meu servidor NGINX não está em execução, este pacote ainda é enviado.

Estou intrigado porque:

  1. Eu não configurei meu próprio cache
  2. Estou usando nginx/1.22.1 NÃO nginx/1.22.0 especificado pelo pacote incorreto
  3. Meu servidor pode não estar funcionando quando recebo esta resposta
  4. netstat -nptwc no meu host mostra:
     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 -nptwcno meu host não mostra tráfego do meu host.
  6. Não vejo nenhum tráfego de servidor no host quando este pacote é retornado.

Ok, então o que está acontecendo aqui... a resposta do meu servidor web está armazenada em cache em algum lugar fora do meu servidor???

Responder1

É possível que a resposta esteja sendo armazenada em cache em algum lugar fora do seu servidor, como em um servidor proxy ou em uma rede de entrega de conteúdo (CDN).

Quando você acessa um site por meio de um CDN, ou seja, (CloudFlare), o CDN armazena em cache certos arquivos estáticos, como imagens ou arquivos JavaScript, em servidores mais próximos do usuário, o que pode melhorar o desempenho do site. É possível que o pacote incompleto esteja sendo servido a partir de um cache CDN, o que poderia explicar por que a resposta ainda está sendo retornada mesmo quando o servidor NGINX não está em execução.

Outra possibilidade é que exista um proxy de cache entre o seu navegador e o servidor NGINX. Pode ser um proxy reverso instalado em seu servidor ou um servidor proxy separado instalado em outro lugar da sua rede ou na rede do seu ISP.

Você pode tentar verificar a configuração da sua rede para ver se há algum proxie de cache ou CDN configurado para servir conteúdo para o seu domínio. Você também pode tentar limpar o cache do navegador e desativar quaisquer plug-ins ou extensões de cache que possam estar causando o problema.

Responder2

No meu caso, houve um problema de NAT no nosso gateway LAN. O tráfego para o IP público estava sendo roteado para dois servidores, um dos quais não tínhamos conhecimento.

informação relacionada