前面博客刚分享过很多关于给wordpress网站做Nginx缓存加速的教程,自己也是不断的在摸索,追求最佳的网站静态缓存加速方案。
宝塔面板开启Nginx fastcgi_cache缓存为WordPress提速=>点此直达
记录分享了 Nginx 的 Fastcgi 缓存之后,在我给第二个站配置缓存的时候就出现了问题,马上就网上找到教程修复完成在多站点下配置 Nginx Fastcgi。经过参考张戈的教程,最终试出了多站点下的 Fastcgi 缓存配置,下面简单记录分享下。
一、部署 http 模块
下面分别讲下单站点和多站点的配置对比:
①、单个站点
单个站点上篇文章已经分享过了,在 http 模块内加入如下配置即可:
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 缓存时,以上配置就不行了,会报错、也有可能会多个网站之间链接错乱。经过测试,修改如下即可:
②、多个站点
#站点 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 模块就很简单了!只要在不同的站点的 php 模块下插入不同的 fastcgi 缓存配置即可,其实就是 key_zone 的区别而已。
比如,我同时给古风博客和中国博客联盟 2 个站点的配置如下:
wzxiu.com博客:
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 wzxiu.com;
fastcgi_cache_valid 200 301 302 1d;
}
#其他配置略
}
xiu.com博客:
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 xiu.com;
fastcgi_cache_valid 200 301 302 1d;
}
#以下配置略
}
其实就是和 http 模块内定义的缓存一 一对应而已,这样才能区分开来啊!否则就会报错。
版权声明:本文内容由来自互联网,该文观点不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系我们举报,一经查实,本站将立刻删除。