Nginx配置多站点下的Fastcgi_cache缓存加速

qiang 2022-04-30WordPress评论字数 1932阅读6分26秒

前面博客刚分享过很多关于给wordpress网站做Nginx缓存加速的教程,自己也是不断的在摸索,追求最佳的网站静态缓存加速方案。文章源自黄强博客-https://huangqiang.me/352.html

宝塔面板开启Nginx fastcgi_cache缓存为WordPress提速=>点此直达文章源自黄强博客-https://huangqiang.me/352.html

 文章源自黄强博客-https://huangqiang.me/352.html

Nginx配置多站点下的Fastcgi_cache缓存加速文章源自黄强博客-https://huangqiang.me/352.html

记录分享了 Nginx 的 Fastcgi 缓存之后,在我给第二个站配置缓存的时候就出现了问题,马上就网上找到教程修复完成在多站点下配置 Nginx Fastcgi。文章源自黄强博客-https://huangqiang.me/352.html

经过参考张戈的教程,最终试出了多站点下的 Fastcgi 缓存配置,下面简单记录分享下。文章源自黄强博客-https://huangqiang.me/352.html

一、部署 http 模块

下面分别讲下单站点和多站点的配置对比:文章源自黄强博客-https://huangqiang.me/352.html

①、单个站点

单个站点上篇文章已经分享过了,在 http 模块内加入如下配置即可:文章源自黄强博客-https://huangqiang.me/352.html

fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=WORDPRESS:150m inactive=31d max_size=10G;
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;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;

当要给多个站点开启 fastcgi 缓存时,以上配置就不行了,会报错、也有可能会多个网站之间链接错乱。文章源自黄强博客-https://huangqiang.me/352.html

经过测试,修改如下即可:文章源自黄强博客-https://huangqiang.me/352.html

②、多个站点

#站点 1 缓存配置
fastcgi_cache_path /tmp/qiang_cache levels=1:2 keys_zone=qiang.com:384m inactive=1d max_size=5G;
#站点 2 缓存配置
#如果要开启更多站点缓存,请继续增加,注意每个站点的 缓存路径 和 keys_zone 要自定义区分一下
#Ps:代码中的参数都只是范例,实际使用请根据服务器配置自行修改
fastcgi_cache_path /tmp/bigqiang_cache levels=1:2 keys_zone=bigqiang.com:384m inactive=1d max_size=5G;
#其他配置可以不变
fastcgi_temp_path /tmp/temp_cache;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;

二、部署 server 模块

配置好了 http 模块之后,server 模块就很简单了!文章源自黄强博客-https://huangqiang.me/352.html

只要在不同的站点的 php 模块下插入不同的 fastcgi 缓存配置即可,其实就是 key_zone 的区别而已。文章源自黄强博客-https://huangqiang.me/352.html

比如,我同时给张戈博客和中国博客联盟 2 个站点的配置如下:文章源自黄强博客-https://huangqiang.me/352.html

qiang.com博客:文章源自黄强博客-https://huangqiang.me/352.html

server(
#其他配置略 
location ~ [^/].php(/|$)
            {
                try_files $uri =404;
                fastcgi_pass  unix:/dev/shm/php-cgi.sock;
                fastcgi_index index.php;
                include fastcgi.conf;
                #fastcgi 缓存配置
                fastcgi_cache_bypass $skip_cache;
                fastcgi_no_cache $skip_cache;
                add_header X-Cache "$upstream_cache_status From $host";
                fastcgi_cache qiang.com;
                fastcgi_cache_valid 200 301 302 1d;
        }
#其他配置略
}

bigqiang.com博客:文章源自黄强博客-https://huangqiang.me/352.html

server(
#以上配置略 
location ~ [^/].php(/|$)
            {
                try_files $uri =404;
                fastcgi_pass  unix:/dev/shm/php-cgi.sock;
                fastcgi_index index.php;
                include fastcgi.conf;
                #fastcgi 缓存配置
                fastcgi_cache_bypass $skip_cache;
                fastcgi_no_cache $skip_cache;
                add_header X-Cache "$upstream_cache_status From $host";
                fastcgi_cache bigqiang.com;
                fastcgi_cache_valid 200 301 302 1d;
        }
#以下配置略
}

其实就是和 http 模块内定义的缓存一 一对应而已,这样才能区分开来啊!否则就会报错。文章源自黄强博客-https://huangqiang.me/352.html

weinxin
👈扫一扫加强子微信👍
持续互联网创业10年,追求实战落地,乐于分享利他。欢迎加微信好友,一起交流学习!
qiang
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: