Utilizando o cache FastCGI do Nginx

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_methode $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_keye pode incluir qualquer coisa em sua composição que esteja disponível no terreno variável do Nginx.
  • Usando uma variável reescrita $fastcgi_skipcachee 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.