Nginx que serve arquivos PHP estáticos

1

Enquanto tentava implementar algum armazenamento em cache para um site Wordpress lento - eu habilitei o cachig no nível NGINX.

No entanto, parece que ele está segurando um arquivo renderizado e não quer soltá-lo.

Não está no cache, eu tentei reverter tudo de volta, desabilitei o SendFile para Off, mas o Nginx ainda deseja servir um arquivo obsoleto de 5 dias atrás.

Eu removi o Nginx, reinstalei-o, re-construí-lo, nada.

Alguma ideia?

user www-data;
worker_processes 4;
pid /run/nginx.pid;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile off;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 65;
        types_hash_max_size 2048;
        # server_tokens off;

        # server_names_hash_bucket_size 64;
        # server_name_in_redirect off;
include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # Logging Settings
        ##

#       access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;

        ##
        # Gzip Settings
        ##

        gzip on;
        gzip_disable "msie6";
}

fastcgi_cache_path / var / run / níveis nginx-cache = 1: 2 keys_zone = NEN_CACHE: 100 m inativo = 60 m; fastcgi_cache_key "$ esquema $ request_method $ host $ request_uri";

server {
        listen 82 default_server;
        listen [::]:81 default_server ipv6only=on;

        root /var/www/html/nen;
        index index.html index.htm index.php;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
        }

        location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
        expires 1M;
        access_log off;
        add_header Cache-Control "public";
    }


        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 256 16k;
                fastcgi_busy_buffers_size 256k;
                fastcgi_temp_file_write_size 256k;

                fastcgi_no_cache $no_cache;
                fastcgi_cache_bypass $no_cache;
#               fastcgi_cache drm_custom_cache;


                fastcgi_cache NEN_CACHE;
                fastcgi_cache_valid 404 60m;
                fastcgi_cache_valid 200 60m;
                fastcgi_max_temp_file_size 4m;
                fastcgi_cache_use_stale updating;
                add_header X-Cache $upstream_cache_status;

        }

    
por Stuart.Sklinar 17.03.2016 / 20:09

2 respostas

0

Parece que o cache está acontecendo devido ao WP Super Cache, um plugin do wordpress.

Eu normalmente recomendo que você consulte sua documentação , mas esse plugin sofreu uma vulnerabilidade incrivelmente importante há alguns anos Varnish , que é excelente) como seu único sistema de cache de página inteira.

    
por 17.03.2016 / 22:27
0

Esta não é uma resposta direta, é para dizer-lhe como resolver isso sozinho. Essas coisas são difíceis de resolver porque você não pode postar tudo.

Volte ao básico. Remova todo o material de ajuste extra da sua localização do PHP. Use um arquivo PHP simples que apenas chame phpinfo (). Tente chamar o PHP através de um socket, para ver se faz alguma diferença. Verifique os logs de acesso e erro do PHP e do nginx para obter informações úteis. Depois que o básico funcionar, adicione o cache básico do Wordpress, Nginx. Eu não me incomodaria muito com o cache dentro do Wordpress, a menos que você tenha um monte de usuários logados, o cache Nginx servirá a maior parte do seu site, na maioria das vezes. Faça isso em um diretório separado, sob um local diferente do nginx, se você não puder derrubar a produção.

É assim que eu chamo HHVM, meu interpretador PHP, mas eu chamo o php-fpm da mesma maneira que você é.

upstream php {
   server 127.0.0.1:9001;
}

# Inside my php location
fastcgi_pass   php;
    
por 17.03.2016 / 22:50