Nginx e cache do PHP: fastcgi_cache, proxy_cache, APC ou memcached ou combo?

5

Nós temos servidores Web rodando o nginx 7.65 junto com o fastcgi PHP5 e estamos olhando para as possibilidades de cache para acelerar a entrega de conteúdo e baixar as cargas do sistema. Os servidores executam aplicativos diferentes (personalizados).

Há tantas opções para armazenamento em cache que não tenho certeza do que seria uma configuração sã. Há memcached, APC, Nginx 'fastcgi_cache, proxy_cache ....

Eu sei que o memcached tem a capacidade distribuída como bônus, mas não precisamos dele neste momento. Na minha experiência, o memcached é mais lento que o APC, se instalado na mesma máquina que está sendo usado, mas isso foi há algum tempo.

Eu não estou familiarizado com o Nginx fastcgi_cache ou mesmo com o módulo proxy_cache regular. É comparável ou é algo completamente diferente?

Qual seria um bom método de cache sane para o Nginx w. FastCGI PHP5?

    
por Matt 29.06.2010 / 15:48

4 respostas

2

O

link é o que usamos em algumas instalações recentes, em vez do próprio FastCGI.

O Nginx pode servir páginas diretamente do memcached, portanto, seu aplicativo pode gravar as páginas diretamente no memcached. Caso contrário, você precisará garantir que seu código utilizasse o memcached para consultas / objetos. Um cache opcode ajudará dependendo da sua base de código. Se você tiver um pequeno conjunto de scripts que são repetidamente executados, o APC ou o XCache (ou o eaccelerator, em alguns casos) pode fornecer um bom impulso.

Seu método de armazenamento em cache é determinado pelo seu código. Você pode armazenar páginas em cache? fragmentos? resultados sql? valores? Qual é o tempo de vida dessas entidades, quanto espaço elas precisam, quão grande é a chave e o conjunto de resultados? Quanto ao memcached ser mais lento que o APC, já que eles não executam a mesma tarefa, não tenho certeza do que você comparou.

    
por 29.06.2010 / 17:56
2

Se a sua caixa puder manipular todo o cache por si só, o memcache só irá atrasá-lo. APC é memória compartilhada. Usado para a direita, isso vai acabar com o memcached. O cache cgi rápido do Nginx fará todas as páginas php dinâmicas gritarem. Mesmo se você definir o cache para apenas 10 segundos, isso faz com que essa taxa máxima de acertos para qualquer página php seja uma vez a cada 10 segundos. Torna impossível travar uma página com carga. Eu corro um monte de sites em uma pequena caixa que recebe milhões de pessoas por mês. Tudo que você precisa é de cache nginx e APC neste momento.

O Memcache entra em cena somente quando você precisa dimensionar seu cache além de uma única caixa.

    
por 24.03.2011 / 11:15
1

Hoje em dia você pode substituir o PHP-FPM pelo HHVM, que combinará o desempenho do PHP-FPM + APC e oferecerá velocidades incríveis: hhvm + nginx + fastcgi_cache

    
por 27.09.2016 / 16:38
0

IMHO nós sysadmins tendem a se concentrar neste problema para trás, começando no back-end, porque isso é o nosso território. O material mais eficaz está realmente na frente. Se você puder obter o cache do navegador (cabeçalhos http) e o cache http (cdn, cabeçalhos novamente) parte direita, você pode fazer coisas surpreendentemente desleixadas na origem e ficar bem.

    
por 29.06.2010 / 19:52