nginx: fastcgi_cache_path vazio

1

Eu queria experimentar o fastcgi_cache na configuração do meu nginx 1.5.8, conforme mostrado aqui .

Em nginx conf, seção http, adicionei:

fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=microcache:10m
max_size=1000m inactive=60m;

Na seção do servidor:

    set $cache_uri $request_uri;

    # POST requests and urls with a query string should always go to PHP
    if ($request_method = POST) {
        set $cache_uri 'null cache';
    }
    if ($query_string != "") {
        set $cache_uri 'null cache';
    }

    # Don't cache uris containing the following segments
    if ($request_uri ~*
"(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)")
{
        set $cache_uri 'null cache';
    }

    # Don't use the cache for logged in users or recent commenters
    if ($http_cookie ~*
"comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
        set $cache_uri 'null cache';
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        include fastcgi.conf;
        fastcgi_pass unix:/var/run/php5-fpm.sock;


        ##
        # Fastcgi cache
        ##
        set $skip_cache 1;
                if ($cache_uri != "null cache") {
                    add_header X-Cache-Debug "$cache_uri $cookie_nocache
$arg_nocache$arg_comment $http_pragma $http_authorization";
            set $skip_cache 0;
        }
        fastcgi_cache_bypass $skip_cache;
                   fastcgi_cache_key
$scheme$host$request_uri$request_method;
            fastcgi_cache_valid any 8m;
                   fastcgi_cache_bypass $http_pragma;
                fastcgi_cache_use_stale updating error timeout
invalid_header http_500;

    }

Eu chown ed /var/cache/nginx para o usuário www-data (e grupo) e chmod para %código%. Eu reiniciei o nginx, mas a pasta está sempre vazia. Isso é normal? Como posso teste se 775 está funcionando?

    
por MultiformeIngegno 14.01.2014 / 20:11

2 respostas

1

Você também precisa definir fastcgi_cache microcache; em algum momento da sua configuração. O valor padrão null desativou o armazenamento em cache: link

Para verificar, veja se o cabeçalho X-Cache-Debug está presente na resposta. Se não, você está sendo muito restritivo para o que pode ser armazenado em cache. O Nginx também honra o cabeçalho Cache-Control que você definiu na resposta HTTP - você pode usar / verificar em seus aplicativos em vez de adicionar muitas condições para o armazenamento em cache.

    
por 17.01.2014 / 18:37
0

Sim, é normal.

Em nenhum lugar da sua configuração você tem a diretiva fastcgi_cache .

Se não especificado, o valor implícito é off . Se você quiser que o armazenamento em cache continue, é melhor mencionar fastcgi_cache microcache; em algum lugar, em que microcache parte é o nome do seu keys_zone de fastcgi_cache_path .

    
por 18.01.2014 / 01:48