Algo que eu não sabia até recentemente, o módulo Nginx FastCGI vem com um componente de cache bastante bacana.
Basicamente por meio da configuração, você é capaz de controlar o cache de respostas de seu (s) backend (s) FastCGI (por exemplo, PHP-FPM) direto para o disco, com a próxima solicitação para a mesma chave de cache (que normalmente é composta por seu $scheme
, $request_method
e $request_uri
– mas pode ser controlado) e servido a partir do cache de disco via Nginx diretamente.
Eu postei algumas configurações padrão para um Gist aqui:
https://gist.github.com/magnetikonline/10450786
Coisas importantes:
- O caminho do arquivo de cache de destino, tamanho / uso da memória compartilhada e tempo limite do GC é definido por
fastcgi_cache_path
- A chave do cache é controlada por meio de
fastcgi_cache_key
e pode incluir qualquer coisa em sua composição que esteja disponível no terreno variável do Nginx. - Usando uma variável reescrita
$fastcgi_skipcache
e algumas condições if (), podemos ficar bastante complexos quanto ao que entra / sai quando se trata de adicionar conteúdo ao cache em vez de passar para o back-end FastCGI.
Tive realmente um bom sucesso com isso em alguns blogs WordPress de alto tráfego, mas lentos, com mudanças mínimas de código necessárias nos próprios aplicativos – incluindo o uso de cabeçalhos HTTP personalizados com solicitações XMLHTTP e $http_[CUSTOM-HEADER]
para controlar a injeção de cache.
Vale a pena dar uma olhada.