NginX / Varnish e Auto Caching

3

Digamos que temos um site wordpress example.com

No nosso site, existem vários produtos. URLs são assim:

example.com/products/product-1/
example.com/products/product-2/
example.com/products/product-3/
etc...

Por exemplo, vamos supor o seguinte:

  • Cada página do produto leva 10 segundos para gerar. Não há como melhorar o desempenho do hardware ou do software, portanto, gerar uma página do produto sempre levará no mínimo 10 segundos.
  • As informações nas páginas do produto são alteradas uma vez a cada hora. Vamos supor que o conteúdo de cada página do produto seja alterado uma vez por hora e permaneça o mesmo até a próxima hora chegar.
  • Não queremos acionar a regeneração do cache por um usuário final. Em outras palavras, se uma hora passar e o cache for inválido, isso deve ser verificado e atualizado por algum processo no servidor, por NginX, Verniz, etc ... mas não pelo usuário final. Nós não queremos que John espere 10 segundos, ele é um cara impaciente.
  • Não queremos fazer nenhum armazenamento em cache no nível do aplicativo, sem memcahed, sem o plugin wp_cache nada assim. Tem que ser via NginX ou Varnish ou algo parecido.

Posso armazenar essas páginas em cache e recalcá-las a cada hora apenas pelo NginX?

Eu preciso de verniz?

Como eu configuraria isso para que o cache em cache seja feito automaticamente para todas as páginas?

    
por Jimbotron 25.08.2014 / 22:10

1 resposta

1

Se for bom que todas as páginas sejam removidas ao mesmo tempo, você pode fazer um cronjob simples que esvazie o diretório do cache nginx.

Para uma limpeza mais refinada, você pode usar o módulo ngx_cache_purge e, em seguida, configurar uma configuração que permita limpar os arquivos via chamadas de URL específicas feitas para o servidor nginx.

Em seguida, você configuraria as tarefas do cron fazendo essas chamadas para o servidor nginx.

Para usar o módulo ngx_cache_purge , talvez seja necessário compilar seu nginx da fonte.

    
por 25.08.2014 / 23:42