为什么Wordpress Cache插件不能与NGINX / PHP-FM一起使用?

时间:2018-12-05 11:53:05

标签: wordpress nginx

Centos7,Vestacp,Nginx / PHP-FM,子站点上的WordPress多站点。

一切正常,但是我的缓存插件不起作用。 我尝试wp-super-cache,现在我使用Cache-Enabler插件。 但是不能正常工作……两天不能解决这个问题。请帮忙。

我的nginx模板的一部分

# CacheEnabler Start
 set $cache_uri $request_uri;

# bypass cache if POST requests or URLs with a query string
if ($request_method = POST) {
    set $cache_uri 'nullcache';
}
if ($query_string != "") {
    set $cache_uri 'nullcache';
}

# bypass cache if URLs containing the following strings
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
    set $cache_uri 'nullcache';
}

# bypass cache if the cookies containing the following strings
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
    set $cache_uri 'nullcache';
}
# default html file
set $cache_enabler_uri '/wp-content/cache/cache-enabler/${http_host}${cache_uri}index.html';    

location / {
try_files $cache_enabler_uri $uri $uri/ /index.php?$args;

    if (!-e $request_filename)
    {
        rewrite ^(.+)$ /index.php?q=$1 last;
    }

    location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
        expires     max;
    }

    location ~ [^/]\.php(/|$) {

    fastcgi_buffers 8 256k;
    fastcgi_buffer_size 128k;
    fastcgi_intercept_errors on;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;

    fastcgi_cache microcache;
    fastcgi_cache_key $scheme$host$request_uri$request_method;
    fastcgi_cache_valid 200 301 302 30s;
    fastcgi_cache_use_stale updating error timeout invalid_header http_500;
    fastcgi_pass_header Set-Cookie;
    fastcgi_pass_header Cookie;
    fastcgi_ignore_headers Cache-Control Expires Set-Cookie;   

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        if (!-f $document_root$fastcgi_script_name) {
            return  404;
        }

        fastcgi_pass    %backend_lsnr%;
        fastcgi_index   index.php;
        include         /etc/nginx/fastcgi_params;
    }
}

location /error/ {
    alias   %home%/%user%/web/%domain%/document_errors/;
}
include     %home%/%user%/conf/web/nginx.%domain_idn%.conf*;

1 个答案:

答案 0 :(得分:0)

我尝试 Breeze插件,安装后即可使用。

WpSupercache,缓存启用程序,litespeed不起作用(多站点,子域,nginx + php-fpm)