Varnish / Nginx / Apache / APC / Memcached

1

Estou configurando um novo servidor da web e queria saber se o seguinte é uma pilha válida:

Coloque o verniz na frente para armazenar em cache e dividir o tráfego entre o nginx para conteúdo estático e o Apache com o mod_php para conteúdo dinâmico.

Eu também estaria executando o APC como o cache opcode para PHP e memcached como cache de dados.

Esta é uma configuração válida? Preciso me preocupar em executar o APC se algum do meu PHP já estiver sendo armazenado em cache pelo Varnish?

    
por Will KIng 17.08.2011 / 15:24

3 respostas

1

Eu vejo alguma redundância em sua abordagem. O nginx é bastante eficiente, pois um servidor da web e um balanceador de carga e a adição de um segundo balanceador de carga em cima dele parecem inúteis.

Pessoalmente, preferiria ter um nginx com interface que serve conteúdo estático e solicitações de balanceamento de carga para o apache + php

Para o cache, você pode querer olhar para os redis, acho que é mais poderoso que o memcached. É definitivamente melhor ter o cache de opcode além do balanceamento de carga. Você pode querer considerar o xcache como o cache de opcode para php.

    
por 17.08.2011 / 15:32
0

Esta é uma configuração válida, embora eu ache que ela pode ser superdimensionada para a maioria dos usos e precisaria de muita memória RAM para agir como pretendido.

Existem vários locais para reduzir camadas ... por exemplo O nginx / static webserver provavelmente pode ser substituído por uma inteligente estratégia de cache e usando apenas apache e verniz (cache de conteúdo estático por mais tempo e usar técnicas de invalidação de cache se você alterar o conteúdo). Mas isso depende da sua aplicação e necessidades especiais.

O memcached pode não adicionar muito à sua configuração, dependendo dos seus dados e uso.

"Preciso me preocupar em executar o APC se algum do meu PHP já estiver sendo armazenado em cache pelo Varnish?" Eles fazem cache de coisas completamente diferentes. A APC armazena em cache o código PHP compilado e o Varnish ou qualquer outro cache cache armazena o conteúdo (que pode ser produzido por esse código). Então esta é uma configuração válida. Nada para incomodar.

    
por 17.08.2011 / 17:07
0

Eu simplificaria sua arquitetura tanto quanto possível:

Primeiro, gostaria de obter o apache fora do caminho e usar nginx com php-fpm para conteúdo dinâmico. Então, se você não estiver usando inclusões do lado da borda ou alguma invalidação de cache avançada, eu usaria o nginx para armazenamento em cache de conteúdo dinâmico em vez de verniz. O conteúdo estático deve receber um tempo de expiração grande na configuração do nginx e usar o controle de versão no nome do arquivo para evitar a exibição de conteúdo obsoleto.

APC (ou xcache para esse assunto) é um detentor, evita recompilar a fonte php para opcodes em cada execução. Além disso, se você estiver executando tudo em uma máquina, poderá usar o APC para armazenamento em cache de dados e escalar para memcached posteriormente, se você codificar uma boa abstração desde o início.

    
por 17.08.2011 / 18:06