W3Total Cache problem with Nginx

Oi, eu instalei o cache total do w3 no meu site com o nginx. Estou com erros no entanto. Por exemplo, quando eu habilitar o disco de cache de página: eu obtive:

Parece que o rastreamento de URL da Página Cache não está funcionando. Se estiver usando o apache, verifique se a configuração do servidor permite .htaccess ou se o nginx verificar se todos os arquivos de configuração estão incluídos na configuração.

Quando eu escolho o disco de cache de página: não é apresentado nenhum erro.

Aqui está a configuração para o servidor em /etc/nginx/nginx.conf:

http://pastebin.com/SEdnyHbf

Se isso faz alguma diferença, eu tenho vários sites instalados, todos em / srv / www

Eu posso ver que W3 Total Cache está criando um nginx.conf separado para cada site, por exemplo, /srv/www/mysite.com/public_html/nginx.conf e dentro dele existem as regras do W3 Total Cache, colado aqui: http: //pastebin.com/dANPVMJk

Gostaria de ter uma configuração que funcione para qualquer número de sites que vou adicionar. Os clientes do meu servidor precisam ser livres para atualizar sua configuração do Cache Total W3 conforme desejam, sem que o servidor precise ser reiniciado. Além disso, eles podem optar por não usar o plugin.

Solutions Collecting From Web of "W3Total Cache problem with Nginx"

Seu arquivo de configuração principal em /etc/nginx/nginx.conf tem algumas armadilhas e não deve ser tão complexo. Deixe-me compartilhar uma versão mais simples para você começar …

 server { server_name www.yourdomain.com; # please replace the root path # ex: /srv/www/mysite.com/public_html root /path/to/wordpress/installation; index index.php; # please update the path to W3 Total Cache's configuration # ex: /srv/www/mysite.com/public_html/nginx.conf include /path/to/wordpress/installation/nginx.conf; location ~* \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location / { try_files $uri $uri/ /index.php?$args; } } 

Dependendo da sua configuração, você pode modificar o acima (ou adicionar mais algumas linhas de código). Por exemplo, se você acessar seu site com www na frente, então você pode querer adicionar outro bloco de server como este …

 server { server_name yourdomain.com; return 301 $scheme://www.yourdomain.com$request_uri; } 

Sempre que atualizar as configurações do Total Cache do W3, lembre-se sempre de reiniciar ou recarregar o servidor Nginx. Caso contrário, o Nginx ainda estaria servindo as configurações anteriores do W3 Total Cache. (Eu gosto do Apache aqui que suporta o processamento de regras htaccess na mosca).

A configuração acima foi testada em CentOS, Ubuntu e Debian (versões mais recentes) com o último Nginx e PHP-FPM. Não funcionaria, se o Apache for usado para servir o PHP.

Espero que isto ajude.

Você precisa definir o caminho para seu arquivo .conf nas opções gerais do plugin, então deixe W3 Total escrever para o arquivo.

Eu criaria um arquivo w3-total.conf em / etc / nginx e chown it www-data: www-data para que w3 possa escrever para ele, em seguida, adicione-o como um include no arquivo do servidor.

Atualizar:

Para responder suas perguntas adicionais. Se todos os seus sites estiverem usando as mesmas configurações do Cache total do W3, forneça o mesmo caminho ao arquivo de configuração e inclua-o dentro de todos os seus blocos de servidor.

Para simplificar, eu gosto de manter todos os meus blocos de servidor em 1 arquivo e include um wp.conf global e um w3-total.conf global.

 server { listen 80; server_name domain1.com www.domain1.com; root /srv/www/domain1; index index.php index.html index.htm; include w3-total.conf; include wp.conf; } server { listen 80; server_name domain2.com www.domain2.com; root /srv/www/domain2; index index.php index.html index.htm; include w3-total.conf; include wp.conf; } 

wp.conf:

 error_page 404 = @wordpress; log_not_found off; location / { try_files $uri $uri/ /index.php?$args; } rewrite /wp-admin$ $scheme://$host$uri/ permanent; location @wordpress { fastcgi_pass php; fastcgi_param SCRIPT_FILENAME $document_root/index.php; include fastcgi_params; fastcgi_param SCRIPT_NAME /index.php; } location ~ \.php$ { fastcgi_max_temp_file_size 1M; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_index index.php; fastcgi_pass php; // php is defined in nginx.conf fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; try_files $uri @wordpress; } 

Nginx.conf

 user www-data; worker_processes 8; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; keepalive_timeout 3; client_max_body_size 13m; # Upstream to abstract backend connection(s) for PHP. upstream php { server unix:/var/run/php5-fpm.sock; //Make sure your setup to use sockets in /etc/php5/fpm/pool.d/www.conf } include sites-enabled/*; } 

A configuração acima é para um pequeno Debian Squeeze VPS executando php-fpm 5.4 e Nginx 1.2.0