Trabalhando Nginx fastcgi_cache cache php-fpm e configuração de armazenamento em cache de arquivos estáticos?

6

O wiki do Nginx é muito vago com a explicação de como configurar corretamente o nginx com php-fpm com fastcgi_caching para sites que possuem cookies, por exemplo, wordpress, drupal, vbulletin etc.

Eu fiz o download de um script de instalação modificado do nginx bash chamado centmin do link e enquanto ele instala o nginx v1.0.2, php 5.3.6 php-fpm, mariadb 5.2.6 mysql, memcached 1.4.5 servidores e benchmark siege automaticamente via shell script, ele não possui os parâmetros de configuração para a criação de fastcgi_caching para caching php.

Também não há configuração para o armazenamento em cache de arquivos estáticos para arquivos veiculados localmente. Existe algum ponto em usar proxy_cache para arquivos estáticos quando eles residem no mesmo disco?

Alguém tem algumas dicas e links de informações para obter informações sobre os tutoriais para a configuração adequada do php (php-fpm) fastcgi_caching, bem como para armazenar arquivos residentes localmente em cache?

obrigado

    
por p4guru 26.05.2011 / 14:45

1 resposta

6

Is there any point in using proxy_cache for static files when they reside on the same disk ?

Não, nenhum. É o acesso ao disco para arquivos estáticos de qualquer maneira.

Anyone got some tips and info links to info to read up on tutorials for proper setup for php (php-fpm) fastcgi_caching as well as for caching locally residing static files ?

Dê uma olhada nos vários tutoriais proxy_caching disponíveis, especialmente aqueles que fazem proxy do WordPress no Apache - o fastcgi_caching é quase idêntico, e o que funciona para proxy_caching quase certamente funcionará bem para o fastcgi_caching.

Eu realmente estou trabalhando neste mesmo problema agora. Até agora eu trabalhei, exceto pela contabilização dos cookies, mas isso é apenas uma simples série de if diretivas para configurar variáveis adicionais para a diretiva fastcgi_cache_key. Esta página deve ser muito útil para você; apenas pule para baixo na configuração proxy_caching e mude todas as diretivas proxy_ * para fastcgi_ * (isso é o que eu tenho seguido, mas cuidado que se é mal e não deve residir em uma diretiva de localização ...).

Quando eu tenho o meu próprio trabalho totalmente eu vou postar no meu blog (link está no meu perfil; eu vou ficar em apuros novamente se eu colocar esse link no meu post). É realmente uma pena que não há, bem, qualquer fastcgi_caching que já esteja lá, então não posso apontar para você exceto meu blog (mesmo que não esteja lá) ainda assim ...).

Editado para adicionar: Aqui está minha configuração atual de fastcgi_caching. Como eu disse, ele ainda não tem nenhuma explicação para os cookies, mas na verdade é funcional como está, na maior parte.

Dentro do bloco de localização que processa meus arquivos .php, adicionei:

#Caching parameters
fastcgi_cache one;
#I use host here to account for the fact that I have multiple WP instances
fastcgi_cache_key $scheme$host$request_uri;

fastcgi_cache_valid  200 302 304 30m;
fastcgi_cache_valid  301 1h;
fastcgi_cache_valid  any 5m;
fastcgi_cache_use_stale error timeout invalid_header updating http_500;

Isto está ligado às adições que fiz no bloco http:

# configure cache log
log_format cache '$remote_addr - $host [$time_local]  '
                 '"$request" $status $upstream_cache_status $body_bytes_sent '
                 '"$http_referer" "$http_user_agent"';


# Configure cache and temp paths
fastcgi_cache_path /var/cache/nginx levels=1:2
                   keys_zone=one:100m
                   inactive=7d max_size=10g;
fastcgi_temp_path /var/cache/nginx/tmp;
    
por 26.05.2011 / 18:59