Skip to content
WONGCW 網誌
  • 首頁
  • 論壇
  • 微博
  • 壁紙下載
  • 免費圖床
  • 視頻下載
  • 聊天室
  • SEO工具
  • 支援中心
  • 表格製作
  • More
    • 在線名片
    • 網頁搜索
    • 天氣預報
    • 二維碼生成器
    • WordPress 插件及主題下載
  • Search Icon

WONGCW 網誌

記錄生活經驗與點滴

[转]WordPress开启Nginx fastcgi_cache缓存加速方法-Nginx配置实例

[转]WordPress开启Nginx fastcgi_cache缓存加速方法-Nginx配置实例

2018-12-15 Comments 0 Comment

简介

本站尚未布置Nginx fastcgi_cache缓存加速,目前使用wp Super Cache进行缓存。

使用WordPress建站的过程中,对于优化Wordpress性能、加快网站访问速度这一环节走了不少的“弯路”。当网站出现访问缓慢、CPU内存耗尽的情形时,最开始想到的是升级服务器配置,后来发现有些无良的VPS商家背后限制资源严重,加钱升级真的很伤人。

最大的体会就是同样的配置,在不同的VPS商家那里跑同一个网站,在同样的流量情况下,居然一个顺畅而另一个卡顿,这个给我最大的感受就是在购买VPS之前一定要看看别人的评测,尤其是VPS主机性能评测这一块,一定要仔细对比,否则容易花不少冤枉钱。

后来给Wordpress做优化时,关注在页面缓存上,之前用过的缓存插件包括但不限于WordPress Super Cache、WP Fastest Cache、W3 Total Cache、cos-html-cache、Cachify……总得来说,安装了缓存插件后提速还是有效果的,但是也带来了不少的问题。

例如配置复杂、生成规则、插件冲突以及无法应对突发流量,也就是说使用缓存插件还是无法达到应对大流量冲击的情况。最后,在朋友的推荐下启用了Nginx fastcgi_cache缓存,直接使用Nginx为页面生成缓存,效率比使用PHP缓存插件要高得多,特别适合小配置的VPS上使用。

安装Nginx ngx_cache_purge模块

  1. 网站:http://labs.frickle.com/files/
  • LNMP

如果你用的是LNMP一键安装包,编辑lnmp安装包目录下的 lnmp.conf 文件,在Nginx_Modules_Options=” 的单引号中加上 –add-module=/root/ngx_cache_purge-2.3 保存,升级一下nginx就安装上了,其他模块也参考这个就行。

ngx_cache_purge-2.3需要你从frickle.com官网中下载安装包并解压,目前最新版是2.3。

羊毛党之家 WordPress开启Nginx fastcgi_cache缓存加速方法-Nginx配置实例 [转]  https://yangmaodang.org
  • Oneinstack

如果你用的是OneinStack面板,可以通过以下命令来编译ngx_cache_purge模块。

  1. # nginx -V 2>&1 | grep -o ngx_cache_purge 查看ngx_cache_purge是否安装,没有数据表示未安装
  2. cd /root/oneinstack/src
  3. wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
  4. tar xzf ngx_cache_purge-2.3.tar.gz
  5. #以下几个安装包都是Oneinstack自带的,不同的版本可能会不同,请根据情况调整
  6. tar xzf nginx-1.14.0.tar.gz
  7. tar xzf pcre-8.42.tar.gz
  8. tar xzf openssl-1.0.2o.tar.gz
  9. cd /root/oneinstack/src/nginx-1.14.0
  10. nginx -V #查看nginx编译参数,最后加上–add-module=../ngx_cache_purge-2.3
  11. ./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
  12. make #编译
  13. mv /usr/local/nginx/sbin/nginx{,_`date +%F`} #备份nginx
  14. cp objs/nginx /usr/local/nginx/sbin
  15. nginx -V 2>&1 | grep -o ngx_cache_purge
  16. # 显示ngx_cache_purge表示已经安装成功

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

安装Nginx ngx_cache_purge模块成功。

  • 其它面板

如果你用的是其它的面板(专题:服务器控制面板榜单),例如WDCP、BT宝塔面板等,请查阅官网的文档。

Nginx开启fastcgi_cache缓存-配置实例

下面挖站否贴出wzfou.com的Nginx开启fastcgi_cache缓存配置实例,详细的说明如下:

  1. #路径需要提前创建好
  2. fastcgi_cache_path /tmp/nginx-cache levels=1:2 keys_zone=WORDPRESS:250m inactive=1dmax_size=500m;
  3. fastcgi_temp_path /tmp/nginx-cache/temp;
  4. fastcgi_cache_key “$scheme$request_method$host$request_uri”;
  5. fastcgi_cache_use_stale error timeout invalid_header http_500;
  6. #忽略一切nocache申明,避免不缓存伪静态等
  7. fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
  8. server {
  9. listen 80;
  10. listen 443 ssl http2;
  11. …………………此部省略……………………
  12. set $skip_cache 0;
  13. #post访问不缓存
  14. if ($request_method = POST) {
  15. set $skip_cache 1;
  16. }
  17. #动态查询不缓存
  18. if ($query_string != “”) {
  19. set $skip_cache 1;
  20. }
  21. #后台等特定页面不缓存(其他需求请自行添加即可)
  22. if ($request_uri ~* “/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|/zhuye/|/wzfou.com/||/question/|/bbs/|/dongtai/|/haoyou/|/qun/|index.php|sitemap(_index)?.xml”) {
  23. set $skip_cache 1;
  24. }
  25. #对登录用户、评论过的用户不展示缓存
  26. if ($http_cookie ~* “comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in”) {
  27. set $skip_cache 1;
  28. }
  29. #这里请参考你网站之前的配置,特别是sock的路径,弄错了就502了!
  30. location ~ [^/]\.php(/|$) {
  31. #fastcgi_pass remote_php_ip:9000;
  32. fastcgi_pass unix:/dev/shm/php-cgi.sock;
  33. fastcgi_index index.php;
  34. include fastcgi.conf;
  35. add_header Strict-Transport-Security “max-age=63072000; includeSubdomains; preload”;
  36. #新增的缓存规则
  37. fastcgi_cache_bypass $skip_cache;
  38. fastcgi_no_cache $skip_cache;
  39. add_header X-Cache “$upstream_cache_status From $host”;
  40. add_header Cache-Control max-age=0;
  41. add_header Nginx-Cache “$upstream_cache_status”;
  42. add_header Last-Modified $date_gmt;
  43. add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
  44. add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
  45. add_header X-XSS-Protection “1; mode=block”; # XSS 保护
  46. etag on;
  47. fastcgi_cache WORDPRESS;
  48. fastcgi_cache_valid 200 301 302 1d;
  49. }
  50. #缓存清理配置(可选)
  51. location ~ /purge(/.*) {
  52. allow 127.0.0.1;
  53. #此处填写你的服务器IP
  54. allow 89.208.xxx.xxx;
  55. deny all;
  56. #请注意此处的WORDPRESS要与上面的keys_zone保持一致
  57. fastcgi_cache_purge WORDPRESS “$scheme$request_method$host$1”;
  58. }
  59. …………………此部分省略……………………
  60. }

有关说明

本地or内存?在fastcgi_cache_path和fastcgi_temp_path中,有人会建议将它设置为内存路径,例如:/dev/shm/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;,如果你的磁盘IO很慢的话建议采用此方式,毕竟内存的读写速度非常快。add_header Cache-Control 

如果是动态内容要实时更新的话,可以设置为0,否则可以设置时间大一些。

安装Nginx Helper插件-自动刷新缓存

通过上面的方法我们已经配置好了fastcgi_cache缓存,接下来我们就要解决当Wordpress有新评论、新文章时自动刷新Nginx缓存页面了。直接搜索Nginx Helper插件下载,然后是设置,首先是开启,清除方式选择本地文件。

插件还提供了其它的一些设置,例如发表新文章、新评论时是否更新Nginx缓存。

由于插件作者定义的缓存路径是 /var/run/nginx-cache ,而我们可能会根据服务器实际情况来自定义缓存路径,这样一来缓存路径的不同就会导致插件无法找到缓存文件并删除!

解决办法是在 WordPress 根目录下的 wp-config.php 中新增如下代码即可:

  1. //根据实际情况定义缓存的存放路径
  2. define( ‘RT_WP_NGINX_HELPER_CACHE_PATH’,’/tmp/wpcache’);

Nginx fastcgi_cache效果预览

启用了Nginx fastcgi_cache后,我们就可以在浏览器Header 头部信息中看到已经命中了。

对于已经设置了不缓存的页面,Nginx fastcgi_cache会直接显示BYPASS。

另外,对于已经登录的用户还有发表过评论的用户,Nginx fastcgi_cache也会直接BYPASS。

同时,我们服务器的缓存路径中也能看到Nginx fastcgi_cache生成的缓存文件。

如果你发现你的评论过的用户依然用的是缓存,那应该是WP没有记住cookie,把以下代码加入到functions.php 中即可。

  1. add_action(‘set_comment_cookies’,’coffin_set_cookies’,10,3);
  2. function coffin_set_cookies( $comment, $user, $cookies_consent){
  3. $cookies_consent = true;
  4. wp_set_comment_cookies($comment, $user, $cookies_consent);
  5. }

总结

Nginx开启fastcgi_cache缓存对于加快网页响应速度以及节省服务器资源有着非常重要的意义,下图是alibabacloud.com的测试结果,可以看出来启用缓存后服务器的承载能力有了非常大的提升。

wzfou.com挖站否在启用fastcgi_cache缓存时,发现在Nginx配置文件中添加了Cache-Control信息,但是总是不生效。HTTP头部信息会总会包含以下信息:

  1. Cache-Control: no-store,no-cache,must-revalidate,post-check=0,pre-check=0 和 Pragma: no-cache,

经过排查,问题出在了LNMP和Oneinstack一键包中的session.cache_limiter的PHP.ini设置部分, 默认值是nocache,我们需要将它设置为none即可。

分享此文:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 分享到 WhatsApp(在新視窗中開啟)
  • 按一下以分享到 Telegram(在新視窗中開啟)
  • 分享到 Pinterest(在新視窗中開啟)
  • 分享到 Reddit(在新視窗中開啟)
  • 按一下即可分享至 Skype(在新視窗中開啟)
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)
  • 點這裡列印(在新視窗中開啟)

相關


WordPress資訊

Post navigation

PREVIOUS
什么是rel =“noopener”属性?对网站有什么影响
NEXT
网速有点渣渣-Netcup RS 1000 SSD G8 xRAM 12G内存 6,99€/月

發表迴響 取消回覆

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料。

More results...

Generic filters
Exact matches only
Search in title
Search in content
Search in excerpt
Filter by 分類
網站公告
Featured
限時免費
ESET NOD32
WINDOWS 10 &11 INSIDER PREVIEW
Windows 軟件下載
系統軟件
辦公軟件
圖像處理
影音媒體
網絡軟件
應用軟件
Mac 軟件下載
安卓軟件下載
網絡資訊
Mac資訊
Linux資訊
VPS資訊
NASA資訊
金融資訊
WhatsApp Stickers教學
WordPress資訊
WeChat資訊
PHP資訊
Plesk資訊
TensorFlow
教學資源
開源程序
網頁工具
SEO工具
醫療健康
旅遊及消閒
其他資訊
Content from
Content to
2018 年 12 月
一 二 三 四 五 六 日
 12
3456789
10111213141516
17181920212223
24252627282930
31  
« 11 月   1 月 »

分類

  • 網站公告
  • 限時免費
  • ESET NOD32
  • WINDOWS 10 &11 INSIDER PREVIEW
  • Windows 軟件下載
  • 系統軟件
  • 辦公軟件
  • 圖像處理
  • 影音媒體
  • 網絡軟件
  • 應用軟件
  • Mac 軟件下載
  • 安卓軟件下載
  • 網絡資訊
  • Mac資訊
  • Linux資訊
  • VPS資訊
  • NASA資訊
  • WhatsApp Stickers教學
  • WordPress資訊
  • WeChat資訊
  • PHP資訊
  • Plesk資訊
  • TensorFlow
  • 教學資源
  • 開源程序
  • 網頁工具
  • SEO工具
  • 醫療健康
  • 旅遊及消閒
  • 其他資訊

彙整

近期文章

  • 消息稱開放世界大金剛新作與任天堂新主機同步發售 2023-03-20
  • 瑞銀同意以30億瑞郎收購瑞信瑞士當局提供流動性援助及損失擔保 2023-03-20
  • 鈣- 有望成為安全的大腦治療方法的關鍵元素? 2023-03-20
  • 有報告認為蘋果裁員將對公司士氣和公眾印象造成重大損害 2023-03-20
  • 在一個偏遠的小島上發現了塑料石塊令科學家都感到震驚 2023-03-20
  • 人類在珠穆朗瑪峰的封凍中留下了持久的微生物遺產 2023-03-20
  • 高通的aptX和aptX HD編解碼器現已成為AOSP開源項目的一部分 2023-03-20
  • 天文學家找到關於宇宙基本結構的新視角 2023-03-20
  • 過去幾億年月亮變“瘦了”約50米:地球呢? 2023-03-20
  • 台積電稱美國工廠明年量產4nm 高通承諾下單但有兩個麻煩 2023-03-20

熱門文章與頁面︰

  • DP vs HDMI 誰才是遊戲玩家最佳選擇?
  • 打車叫到特斯拉不會開門很尷尬?官方介紹開關門方法
  • ESET NOD32 LICENSE KEY (UPDATED 2023-01-17)
  • Explorer Patcher:讓Windows 11恢復Windows 10的行為特徵
  • 盜版Windows 7還能免費升級Windows 10嗎?
  • Autodesk AutoCAD 2021 正式版註冊版-簡體/繁體中文/英文版
  • Windows及OFFICE激活密鑰+電話激活教程–自用
  • 電腦PC端翻牆工具vpn破解版
  • 在一個偏遠的小島上發現了塑料石塊令科學家都感到震驚
  • 新發現的大腦結構解釋了為什麼一些鳥類如此聰明甚至可能有自我意識

投遞稿件

歡迎各界人士投遞稿件到admin@wongcw.com

請提供以下資料:

1.你的名字

2.你的電郵

3.分類目錄

4.文章標題

5.文章摘要

6.文章內容

7.文章來源

 

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

快帆

MALUS

極度掃描

DMCA.com Protection Status

WONGCW 網誌

  • 免責聲明
  • 捐助我們
  • ThemeNcode PDF Viewer
  • ThemeNcode PDF Viewer SC
  • Events

服務器提供

本站使用之服務器由ikoula提供。

聯繫我們

查詢,投稿,商務合作:
​admin@wongcw.com
​技術支援:
​support@wongcw.com
​客户服務:
​cs@wongcw.com

QQ群:833641851

© 2023   All Rights Reserved.