WordPress开启Nginx fastcgi_cache缓存加速

昨天下午没有太多事情,想起来一直想弄的nginx fastcgi_cache还没有弄,于是趁着重装景安服务器的功夫,顺便把这个玩意也搞搞,弄到晚上7点多,走了不少弯路,不过最后总算是搞定了。

方法步骤如下:

一、安装Nginx ngx_cache_purge模块

由于我使用的是oneinstack面板,所以以下的步骤都以此为基础,其他比如lnmp没有试过,可能需要微调一下。

# nginx -V 2>&1 | grep -o ngx_cache_purge 查看ngx_cache_purge是否安装,没有数据表示未安装 cd /root/oneinstack/src wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz tar xzf ngx_cache_purge-2.3.tar.gz #以下几个安装包都是Oneinstack自带的,不同的版本可能会不同,请根据情况调整 tar xzf nginx-1.16.1.tar.gz tar xzf pcre-8.43.tar.gz tar xzf openssl-1.1.1c.tar.gz cd /root/oneinstack/src/nginx-1.16.1 nginx -V #查看nginx编译参数,最后加上--add-module=../ngx_cache_purge-2.3 ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.0.2o --with-pcre=../pcre-8.42 --with-pcre-jit --with-ld-opt=-ljemalloc --add-module=../ngx_cache_purge-2.3 make #编译 mv /usr/local/nginx/sbin/nginx{,_`date +%F`} #备份nginx cp objs/nginx /usr/local/nginx/sbin nginx -V 2>&1 | grep -o ngx_cache_purge # 显示ngx_cache_purge表示已经安装成功、

使用Nginx -V查看编译参数添加add-module时,一定要根据你自己的Nginx的编译参数来操作,也就是说保留原来的Nginx参数再加上add-module。例如我的:

二、Nginx开启fastcgi_cache缓存-配置实例

这里我直接贴出我的www.yanjingweb.cn的配置实例

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;server { listen 80; listen 443 ssl http2 此处略 set $skip_cache ; #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; } #这里请参考你网站之前的配置,特别是sock的路径,弄错了就502了!location ~ [^/]\.php(/|$) { #fastcgi_pass remote_php_ip:9000;fastcgi_pass unix:/dev/shm/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"; #新增的缓存规则fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; add_header X-Cache "$upstream_cache_status From $host"; add_header Cache-Control max-age=; add_header Nginx-Cache "$upstream_cache_status"; add_header Last-Modified $date_gmt; add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型add_header X-XSS-Protection "1; mode=block"; # XSS 保护etag on; fastcgi_cache WORDPRESS; fastcgi_cache_valid 200 301 302 1d; } #缓存清理配置(可选)location ~ /purge( /.*) { #为防止转义,请去掉{ /之间的空格allow 127.0.0.1; #此处填写你的服务器IPallow 122.115.122.111; deny all; #请注意此处的WORDPRESS要与上面的keys_zone保持一致fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1"; }

以下略

至此,全部设置结束,nginx -t 检查以下nginx。然后重新启动一下nginx。service nginx restart

用浏览器打开一个网页,F5刷新几下,看看浏览器的head,就能看到nginx_cache hit字样,说明缓存成功了。然后看缓存文件夹了,也有了一堆的文件。

最后,说一下

开通这个之后,确实打开网页的速度快了不少,在不用CDN的前提下,网页也能秒开了,有动手能力的同学不妨一试。

Read more

天上有雨,未落人间——说说《需卦》

天上有雨,未落人间——说说《需卦》

《易经》六十四卦中,《需卦》排在第五。 前面几卦,乾坤是天地之本,屯是起步之难,蒙是启蒙之初,到了第五卦——《需》——天地间万象已动,人也有所思、有所欲,但偏偏,这一步还不能迈出去。 需,有孚,光亨,贞吉,利涉大川。 等,不是停,是蓄。 卦象:天上有云,水未落 需卦的卦象是:上坎(☵,水)下乾(☰,天)。 水在天上,正是积雨之象。我们站在地上,仰望天空,望着那片厚厚的云,知道它迟早会落雨,但此时此刻,还未滴下哪怕一丝甘露。 这就叫“需”。 你知道目标在前,力量也已在身,但时机未到,不能躁进。 用现在的话说就是:“你已经准备好了,但世界还没准备好接住你。” 这不是消极,而是一种审时度势的智慧。

By 老刘
小米SU7又出事了,我们到底该怪谁?

小米SU7又出事了,我们到底该怪谁?

6月11日晚上,郑州街头,一辆小米SU7失控连撞十几辆车——电动车、小轿车都没躲过,车头几乎报废,现场一度混乱不堪。更早之前,安徽那起SU7高速起火致三人死亡的事故也还没从大家脑海中淡去。 姑且不说到底是不是智能驾驶的原因, 也有很多它的粉丝说比亚迪出事多少多少,归根到底还都是电车的问题,那么电车怎么老出事? 是车太猛?人太嫩?还是对“智能驾驶”理解太美好? 动力太猛,新手真心顶不住 先说车。SU7有多猛?顶配版零百加速2秒多,马力直接干到1000匹以上,这种性能放在燃油车里,那就是超跑级别。 但问题是,买它的大多是年轻人,很多是人生第一辆车,甚至有的刚拿驾照没多久。这种“猛兽”配“新司机”的组合,说实话,确实危险系数高。一脚电门下去,车先冲出去了,人还没反应过来。 郑州这次的女司机,就是刚提车不久。车一失控,根本刹不住。不是她不会开,而是这车给新手的容错空间实在太小了。 智能驾驶不是“放手驾驶” 再说智能驾驶。小米宣传的NOA、

By 老刘
站在新高考的起点:对两年后女儿的期许

站在新高考的起点:对两年后女儿的期许

2025年的高考今天落幕,这是“3+1+2”模式全面实施的第一年。从改革到首考,从认知到实践,这不仅是对学生能力的测量,更是一种教育方向的宣示。 作为家长,我对这次高考有三点深刻感受: 一、语文卷:不再“刷题”,更考“立志与思辨” 今年全国卷一作文聚焦“民族魂”,从老舍、艾青、穆旦的文字中引导学生理解爱国情怀的不同方式 。考题不仅强调情感共鸣,也要求结构逻辑清晰,表达真诚、语言自然流畅 。 这道作文开放而不空洞:任何有生活、有思考的学生,都能找到表达路径;但能够精准逻辑、有独立见解,并融入素材,便是真高分。 这使我明白,真正的语文能力,不在于套路,而在于“你是谁”——有温度、有思想、有立场。 二、历史题:文言与史料,强调跨学科理解 今年历史全国卷大量使用文言史料,并引导学生依据不同角度进行对比、评析与判断

By 老刘
荔枝路远,道在人心——从《易经》看李善德的一生

荔枝路远,道在人心——从《易经》看李善德的一生

马伯庸的小说《长安的荔枝》及其改编剧集,看似讲述一场跨越千里的荔枝运输奇旅,实则以小人物的遭遇折射盛唐末期政治、社会、文化的真实图景。主人公李善德,这位从九品小吏,在完成“运荔枝”这一看似荒诞实则关乎权力的任务中,演绎出一部小人物在大时代中如何“知命”、“尽性”、“归真”的命运史。 本文尝试以《易经》的视角,借其卦象与哲思,还原李善德的命运轨迹与精神转化。 一、《屯卦》:困中求进,命运起始 卦辞:“屯,元亨,利贞。勿用有攸往。利建侯。” “屯”象征万物初生,动荡未定。李善德身为地方文吏,无权无势,却在极为不利的局势中被委以“千里送荔枝”之命——这是危也是机。他组建了一支临时小队,历经风雨山川、盗贼瘴气,表面是传荔枝,实则是在夹缝中求生存。这正是“屯”卦中的“利建侯”

By 老刘