WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]

研究了一下Nginx的FastCGI模块,其功能就是静态请求自主处理,动态请求代理转发。简单说就是把页面缓存了,直接由Nginx返回缓存的html文档页面,PHP或Python无需再次动态计算构建页面,毕竟计算还是毕竟消耗资源的,请求多了不就炸了嘛。

之前分享过WP Super Cache插件的使用,其原理就是由PHP缓存页面,然后由PHP返回缓存的HTML页面,是快了,但并发还是老样子,只是比被访问时构建页面快一些。面对高并发时,例如页面被CC攻击,内存还是会被拉满,PHP-FPM不知道创建了多少进程。

本次分享的是由Nginx返回HTML缓存,那并发真没得说,带宽只要峰值够高,那它真的无敌。看好了,这次的快会很帅!

需要放在主题function.php文件中,或插件实现

// 注册并加载自定义JS文件(底部引入)
function custom_enqueue_scripts() {
    // 1. 自定义本地JS文件(主题目录下的js文件夹)
    $custom_js_url = get_template_directory_uri() . '/js/custom-script.js';
    wp_enqueue_script(
        'custom-script', // 唯一标识(自定义名称)
        $custom_js_url,  // JS文件路径
        array('jquery'), // 依赖关系(如依赖jQuery,可省略)
        '1.0.0',         // 版本号(可省略,用于清除缓存)
        true             // 设为true,加载到页面底部
    );

    // 2. 第三方远程JS文件(如统计脚本)
    wp_enqueue_script(
        'third-party-script',
        'https://cdn.example.com/script.js',
        array(),
        false,
        true
    );
}
// 挂载到wp_enqueue_scripts钩子
add_action('wp_enqueue_scripts', 'custom_enqueue_scripts');
// 注册并加载自定义CSS文件
function custom_enqueue_styles() {
    // 注册并入队CSS文件
    $custom_css_url = get_template_directory_uri() . '/css/custom-style.css';
    wp_enqueue_style(
        'custom-style',  // 唯一标识
        $custom_css_url, // CSS文件路径
        array(),         // 依赖关系(可省略)
        '1.0.0'          // 版本号
    );
}
// 挂载到wp_enqueue_style钩子
add_action('wp_enqueue_style', 'custom_enqueue_styles');

访客的体验也是拉满的,我想,这么快的速度,也会提高收录吧?

Nginx启用FastCGI模块配置

首先你得安装ngx_cache_purge模块,宝塔的编译安装脚本中是自带的。使用以下命令检查是否存在ngx_cache_purge模块,若检查没有,那就得考虑一下重新编译安装了。它增加了从FastCGIproxySCGIuWSGI缓存中清除内容的功能,这是我们后续要用的,若是纯静态,不修改文章内容,就可以不安装该模块和wp插件。

nginx -V
图片[1]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

关于安装请参考:https://github.com/FRiCKLE/ngx_cache_purge

接下来我们继续,在Nginx中启用FastCGI,并添加缓存区,这是重要步骤,同时对移动端和电脑端做了区分

首先在你的Nginx配置文件中找到http{}

创建缓存区,添加设备UA区分

编辑文件:/www/server/panel/vhost/nginx/0.fastcgi_cache.conf

图片[2]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

将其中内容全部注释

图片[3]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

打开目录:/dev/shm/nginx-cache,在其中创建文件夹,若提示/dev/shm下没有nginx-cache则创建,文件夹名为站点域名,总之路径为以下

/dev/shm/nginx-cache/站点域名
图片[4]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

宝塔Nginx配置文件修改

图片[5]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

功能注释及配置(其它程序可以依据注释适配自己的程序):

注意fastcgi_cache_path其中的配置,缓存目录和缓存标识,缓存目录是内存目录,你也可以设置为其它硬盘目录,这样不会占用内存,但速度会大减。

网站Nginx配置启用静态缓存

做了这个操作,你的网站才正式接入了Nginx缓存

宝塔网站配置文件在:/www/server/panel/vhost/nginx/你的域名.conf

注释PHP引用,在它前方添加#井号

图片[6]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

添加以下配置

图片[7]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

功能注释及配置(其它程序可以依据注释适配自己的程序):

注意fastcgi_pass unix配置,一定要改为你在用的PHP版本

注意fastcgi_cache配置,改为你的域名

如果你的站点需要实时更新内容,那就需要添加Purge入口,用于让Nginx Helper插件在文章更新或有评论时清除缓存。后续会说明Nginx Helper插件,别急

图片[8]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

添加以下配置

修改服务器hosts让域名指向本地

这是为了让你的网站在服务器内请求,不再走公网请求网站

Linux hosts配置文件在:/etc/hosts

图片[9]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

其它系统及操作教程见:

一行一个,在结尾换行添加以下

#127.0.0.1 你的域名,如以下,必须是你wp设置中的域名,若是有www,就必须添加www
127.0.0.1 wxsnote.cn

wordpress使用Nginx Helper插件(自动清理缓存)

在wp后台插件目录中搜索Nginx Helper安装并启用

图片[10]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

插件没有中文,翻译教程见:

在设置中按图启用这几项,后续的设置按需即可

图片[11]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

验证是否生效

1.清理浏览器缓存或打开一个无痕窗口

F12打开控制台,切换到网络选项

如下图,你选中网络中第一个,就是页面文档文件

device-type输出为pc,代表访客为PC;nginx-cache输出为HIT,代表命中了缓存,若是过期,未命中或跳过,就清理浏览器缓存[查看截图]或清除Cookie[查看截图],再刷新两次

图片[12]-WordPress网站开启Nginx静态加速提高并发[其它程序也可借鉴]-王先生笔记

结语

综上,借助Nginx搭配FastCGI模块实现静态缓存,能让WordPress彻底摆脱PHP动态计算的束缚,服务器并发能力直接拉满。配置后记得搭配Nginx Helper插件自动清理缓存,兼顾速度与内容实时性。这套方案不仅适配 WordPress,其他动态程序也能借鉴。用好静态缓存,既能大幅提升访客浏览体验,又能降低服务器资源消耗,堪称高并发场景下的性价比优化方案。


本文参考:

原文链接(非王先生笔记发布均为盗版):https://wxsnote.cn/7193.html

评论后可接收该文章的更新邮箱通知
友情赞助

如果你喜欢我的内容,可以赞助我哦!你的一点点心意,是我不断前进的动力!
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
相关推荐
评论 共4条

请登录后发表评论

    请登录后查看评论内容

王先生笔记