NGINX Calcula Etag reproduzível para arquivos estáticos

1

Eu estava pensando em mover meus arquivos estáticos para vários servidores de origem, mas notei que o NGINX calcula diferentes Etags para arquivos implantados de forma idêntica nos diferentes servidores, que então mexem com camadas de cache downstream que pensam que os arquivos continuam mudando.

O que eu queria que acontecesse era que o Etag dependesse do próprio arquivo exibido, por exemplo, usando um MD5 ou outro hash do conteúdo (e naturalmente para o NGINX armazenar em cache localmente para desempenho).

Isso é possível com o arquivo estático fornecido, ou é esperado que eu resolva isso de outra maneira? por exemplo. escrever meu próprio aplicativo / script "servidor de arquivos" que computa e armazena em cache o hash, ou assegura que todos os metadados do sistema de arquivos (o que ele usa) são sempre idênticos de alguma forma?

Usar o Apache ou similar é uma opção.

    
por Fire Lancer 17.08.2017 / 16:56

1 resposta

2

como indicado em Algoritmo por trás da geração do nginx etag , o nginx usa o último horário modificado e o tamanho do conteúdo dos arquivos para gerar os etags de arquivos estáticos.

Portanto, se você tiver diferentes etags para os mesmos arquivos estáticos em servidores de back-end diferentes, é provável que os carimbos de data / hora de seus arquivos não correspondam exatamente (por exemplo, porque você fez check-out com git em momentos diferentes).

Não vejo nenhuma configuração do nginx para configurar como o nginx calcula o etag, portanto, sua única chance com o nginx é garantir que os registros de data e hora do arquivo sejam exatamente os mesmos, por exemplo, Usando o rsync ou configurando manualmente os registros de data e hora após a verificação dos arquivos (para um script que define registros de data e hora para o último registro de data e hora que um arquivo foi confirmado, consulte link )

    
por 20.12.2017 / 11:07