Como definir cabeçalhos de controle de cache

2

Como faço para configurar os cabeçalhos de controle de cache para arquivos específicos no meu servidor web? Estou executando um ambiente LAMP. Eu não quero definir o controle de cache em todo o site, apenas para alguns arquivos. Eu estou usando o CloudFront para distribuir conteúdo de um dos meus domínios. Não há tie-in S3 aqui. Por padrão, o conteúdo expira depois de 24 horas, o que é bom para a maioria dos dados no site, no entanto, há algumas páginas que eu gostaria de ter apenas um limite de cache de 1 hora.

    
por Macgyver 20.01.2012 / 15:52

2 respostas

3
O

Amazon CloudFront (principalmente) obedece ao mecanismo de controle de cache HTTP normal (consulte RFC 2616 ) conforme documentado em Amazon CloudFront Expiração de Objetos , especificamente:

You can specify a longer expiration time by using the Cache-Control, Pragma, or Expires header on the object in the origin server. [...] CloudFront does not restrict their maximum values.

The minimum expiration time you can specify is one hour. If you specify a minimum time of less than one hour, CloudFront uses one hour.

[emphasis mine]

Assim, você terá que orquestrar sua pilha LAMP para aplicar o cabeçalho Cache-Control: max-age=3600 desejado especificamente a esses objetos / páginas, que serão capturados automaticamente pelo CloudFront durante sua busca de origem a partir de então.

Como isso é feito, em particular, depende das ferramentas / tecnologias usadas para veicular o conteúdo do curso, por exemplo:

Para uma excelente visão geral sobre o cache em geral, eu recomendo o tutorial de cache de Mark Nottingham.

    
por 20.01.2012 / 16:30
1

Fyi, a resposta acima ainda está correta, mas um pouco desatualizada em um aspecto, já que a Cloudfront agora suporta um TTL mínimo de 0.

Amazon Guia do desenvolvedor: Vencimento 1

    
por 30.05.2012 / 13:14