使用宝塔面板配置Nginx Fastcgi_cache优化WordPress网站性能

使用宝塔面板配置Nginx Fastcgi_cache优化WordPress网站性能

在WordPress网站的优化中,缓存是一个关键因素。虽然有很多插件可用于缓存,但它们往往带来配置复杂、语言不友好和插件冲突等问题。有没有更简单高效的方法呢?答案是:Nginx fastcgi_cache缓存。它直接在Nginx服务器层面缓存页面,包括伪静态页面,使网站速度大幅提升,同时避免了插件相关的问题。

技术无法解决的问题,用硬件来解决;硬件不足时,依靠技术。投入更多,问题减半。

如果你使用宝塔面板,以下教程将教你如何配置Nginx fastcgi_cache缓存。

wordpress-nginx-fastcgi

Nginx缓存配置

首先,登录宝塔面板,在软件商店中找到Nginx,点击设置按钮,并在“配置修改”中添加以下内容:

fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=WORDPRESS:250m inactive=1d max_size=1G;
fastcgi_temp_path /tmp/wpcache/temp;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
#忽略一切 nocache 申明,避免不缓存伪静态等
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

NGINX conf

网站配置文件调整

接着,在宝塔后台的网站列表中找到需要配置的网站,点击“设置”按钮,并将以下代码添加到该网站的Nginx配置文件中。

根据需要调整第26行php版本,第48行的服务器外网IP地址。

set $skip_cache 0;

# POST请求不缓存
if ($request_method = POST) {
    set $skip_cache 1;
}

# 动态查询不缓存
if ($query_string != "") {
    set $skip_cache 1;
}

# 后台和特定页面不缓存
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
    set $skip_cache 1;
}

# 对登录用户和评论用户不缓存
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# PHP配置
location ~ [^/]\.php(/|$) {
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi-74.sock;
    fastcgi_index index.php;
    include fastcgi.conf;

    # 缓存配置
    fastcgi_cache_bypass $skip_cache;
    fastcgi_no_cache $skip_cache;
    add_header X-Cache "$upstream_cache_status From $host";
    fastcgi_cache WORDPRESS;
    add_header Cache-Control max-age=0;
    add_header Nginx-Cache "$upstream_cache_status";
    add_header Last-Modified $date_gmt;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";
    etag on;
    fastcgi_cache_valid 200 301 302 1d;
}

# 缓存清理配置
location ~ /purge(/.*) {
    allow 127.0.0.1;
    allow "服务器外网IP";
    deny all;
    fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
}

Fastcgi_Nginx完成后,重载Nginx设置即可启用缓存。

安装Nginx Helper插件

在WordPress后台搜索并安装Nginx Helper插件。此插件专为WordPress的fastcgi_cache缓存设计,非常便捷。

Nginx Helper

验证缓存状态

按F12开启浏览器开发者工具,未登录情况下访问网站首页,检查响应头信息。出现HIT表示已缓存,BYPASS表示设置原因未缓存,MISS表示页面尚未缓存(首次访问新页面时出现)。

Nginx-Cache

为多个网站配置Nginx fastcgi_cache缓存

如果在同一服务器上有多个网站需要配置缓存,需在Nginx配置文件中为每个网站设置不同的fastcgi_cache_path路径和keys_zone名称。例如,为第二个网站设置如下:

fastcgi_cache_path /tmp/wpcache2 levels=1:2 keys_zone=WORDPRESSA:250m inactive=1d max_size=1G;

然后,复制第一个网站的缓存配置,将第34和50行的名称改为WORDPRESSA,并应用到第二个网站的配置中。

解决Nginx Helper插件清理缓存无效问题

找到插件目录下的nginx-helper/includes/class-nginx-helper.php,将其中的/var/run/nginx-cache路径修改为/tmp/wpcache。在WordPress根目录的wp-config.php文件中新增如下代码:

// 根据实际情况定义缓存的存放路径
define('RT_WP_NGINX_HELPER_CACHE_PATH', '/tmp/wpcache');

通过上述配置,你可以在宝塔面板中高效地启用Nginx的fastcgi_cache缓存,从而显著提升WordPress网站的性能。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    请登录后查看评论内容