Apache Etags, precisa de ajuda?

1

No momento não usamos cabeçalhos Expire, eu recomendaria isso, mas forçar nossa grande equipe de desenvolvimento / negócio a mudar suas práticas e renomear arquivos estáticos a cada nova versão não será fácil obter arquivos atualizados.

Corri o YSlow e obtemos um F para o Etags, "Existem 24 componentes com ETags mal configurados". O httpd.conf do Apache não possui Etags configurados manualmente, portanto, parece que estamos usando as configurações padrão. (Tamanho do MTime do FileETag INode). Quando visito nosso site e, em seguida, clico em atualizar, vejo que o Etags parece estar funcionando muito bem:

Um exemplo de imagem: If-Modified-Desde: Sáb, 23 de julho de 2011 02:05:28 GMT Se-Nenhum-Coincidir: "21246-eb05-4a8b30415ea00" Cache-Control: max-age = 0

HTTP / 1.1 304 não modificado Data: Ter, 06 de setembro de 2011 20:59:29 GMT Servidor: IBM_HTTP_Server Conexão: Keep-Alive Manter vivo: tempo limite = 6 Etag: "21246-eb05-4a8b30415ea00"

1) Eu vejo um "304 Not Modified" para arquivos de imagem, js, html, etc em nossa landing page. Por que o Yslow diz que temos alguns Etags mal configurados quando todos eles estão configurados com a mesma configuração padrão do Apache? O relatório do YSlow menciona esses mesmos tipos de arquivos.

2) Nós temos um balanceador de carga F5 entre vários servidores web Apache, usamos bits pegajosos, e é por isso que eu acho que o inode Apache Etag não está incomodando muito a gente. Mas se um usuário voltar amanhã e acessar outro servidor, perderemos a opção de cache correta porque o código será diferente? Devemos mudar o httpd.conf e remover a variável Etode do inode de todos os servidores web?

Desculpe pelo comprimento! Obrigado

    
por roacha 06.09.2011 / 23:44

2 respostas

1

1) Talvez a mensagem não seja sobre arquivos estáticos, mas outro conteúdo entregue que não tenha ETags (por exemplo, páginas PHP, saída CGI, etc.)?

2) Sim, você deve remover o inode da tag e também certificar-se de que os arquivos tenham o mesmo timestamp em todos os backends.

    
por 06.09.2011 / 23:52
0

C. Ramseyer está correto. Aqui está uma configuração que uso para manter o YSlow satisfeito:

<Directory /path/to/files>
  FileETag MTime Size
  ExpiresActive On
  ExpiresDefault "access plus 1 week"
  ExpiresByType text/html "access plus 1 week"
  ExpiresByType text/css "access plus 1 week"
  ExpiresByType text/javascript "access plus 1 week"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType image/jpg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
</Directory>

Certifique-se de que você está ok com o cache de páginas por uma semana . Se você tiver um blog, por exemplo, atualizado diariamente, a configuração acima fará com que a lista de postagens seja armazenada em cache por 1 semana. Nesse caso, você pode querer usar ExpiresDefualt "access"

    
por 07.09.2011 / 00:33