VPS侦探论坛

 找回密码
 注册
查看: 5683|回复: 0

nginx的wp super cache设置

[复制链接]
发表于 2013-2-24 11:14:29 | 显示全部楼层 |阅读模式

军哥人很好,回答了我很多菜鸟的问题,一直没找到理由来感谢他,现在把我的服务器配置好了wp super cache,就以这个小小的经验,给其它需要的朋友吧。

--------------------------------------------------------
背景:
网站支持程序装的是军哥的lnmp0.9,系统是cent OS 6.X,因为wp super cache插件对apaceh友好,但是对于nginx却支持不够,所以网页生成不了静态文件。
经过测试,发现wp super cache是能够在硬盘上生成静态文件的,只是没有rewrite的支持,所以nginx的用户都是用PHP压缩的方式。
而本人因为做了站群系统,VPS上有多达30多个用WP支持的站点,如果30多个站点同时有访问,PHP占用CPU和内存是巨大的,一直因为这个问题,我512M内存、1G赫兹CPU的VPS总是不断重启,而我的站都是内容站,并不需要会员系统,所以想要生成静态网页,利用nginx小巧强大的静态网页处理,来加强我的网站。
一、利用rewrite规则,实现从nginx层面访问wp super cache生成的静态网页,绕过PHP。
  1. location / {
  2.            # 如果请求的文件已存在,直接返回
  3.            if (-f $request_filename) {
  4.                break;
  5.            }
  6.            set $supercache_file '';
  7.            set $supercache_uri $request_uri;
  8.            set $supercache 1;
  9.            set $ihttp_host '';

  10.            if ($request_method = POST) {
  11.                set $supercache 0;
  12.            }

  13.            # 仅在访问文章永久链接时使用静态文件,请求中带参数则不使用静态缓存
  14.            set $qs 0;
  15.            if ($query_string) {
  16.                set $qs 1;
  17.            }

  18.            # 不过从 twitter, facebook, feedburner 链接点过来的,总是带参数,这些访问仍然可以使用静态文件
  19.            if ($query_string ~* "^utm_source=([^&]+)&utm_medium([^&]+)&utm_campaign=([^&]+)(&utm_content=([^&]+))?$") {
  20.                set $qs 0;
  21.                set $supercache_uri $document_uri;
  22.            }
  23.            #deactivate on high load
  24.            if ($qs = 1) {
  25.                set $supercache 0;
  26.            }
  27.            # 针对已登录用户(发表过评论),可以不静态化。在访问量高峰时可注释掉
  28.            if ($http_cookie ~* "comment_author_|wordpress|wp-postpass_" ) {
  29.                set $supercache 0;
  30.            }

  31.            # 支持移动设备,访问移动版本的网页缓存
  32.            if ($http_user_agent ~* '(iphone|ipod|aspen|incognito|webmate|android|dream|cupcake|froyo|blackberry9500|blackberry9520|blackberry9530|blackberry9550|blackberry 9800|webos|s8000|bada)') {
  33.                 set $ihttp_host '-mobile';
  34.            }

  35.            # 指定静态缓存文件的路径
  36.            if ($supercache = 0) {
  37.                 set $supercache_uri '';
  38.            }
  39.            if ($supercache_uri ~ ^(.+)$) {
  40.                set $supercache_file /wp-content/cache/supercache/$http_host$1/index${ihttp_host}.html;
  41.            }

  42.            # 只有当缓存文件存在时,才进行 rewrite
  43.            if (-f $document_root$supercache_file) {
  44.                #rewrite ^(.*)$ $supercache_file break;
  45.                rewrite ^ $supercache_file last;
  46.            }

  47.            # 所有其他请求,转给 wordpress 处理
  48.            if (!-e $request_filename) {
  49.                rewrite . /index.php last;
  50.            }
  51. }
复制代码






用上面这段规则代替wordpress的规则,即wordpress.conf,或者自己建一个conf,再添加到vhost的conf文件中。

二、下面就是wp super cache的设置了,这些设置很重要,一定要设置对。




上图是设置好后,插件会提示说找不到 mod_rewrite 模块,这个不用管它,其实已经达成作用了。




选择mod_rewrite 缓存模式。“压缩页面以便让来访者更快浏览。 (推荐)”不要选择,因为选择了以后,服务器会生成zip的文件,最终还是要通过PHP模式来访问。

下面我就不截图了,不知道怎么回事,下面的设置我截不了图。


“不要为已知用户缓存。 (推荐)”这个选项也不要选择,已知用户就是WP会员,包括你自己的admin帐户。


“缓存重建”和“移动设备支持”可以选择。


“当有新文章或页面的发布或更新时清除之前的缓存文件。”这个选择,每次你发新文章时会生成新的缓存文件。


“首页额外检查”不用选择,因为选择了同样会占用内存。


“当某页面有新评论时,只刷新该页面的缓存。”这个选择。


重要:禁用垃圾收集器。垃圾收集器会每隔几分钟检查缓存,过期的就会重建,其实这个过程非常地占用内存,一定要把时间设为0,除非你的内存很大不在乎。


然后选项卡上的“预缓存”一定不要进行设置,那个我试过,他会把你网站的所有文章都生成一次缓存,这个过程中,你就等着服务器宕机吧!


所有设置就这些,其它的设置靠你自己来慢慢摸索吧。现在我的网站经过静态化以后,访问十分快速,不得不说nginx的服务器对于静态网页的处理确实很厉害。如果你用着nginx的服务器,一定不要浪费它的这个长处,尽量把网页静态化处理。



--------------------------------------------------------
源自:http://killzz.com/nginx-wp-super-cache.html

[ 本帖最后由 varien 于 2013-2-24 11:16 编辑 ]

评分

参与人数 1威望 +5 收起 理由
licess + 5

查看全部评分

美国VPS推荐: 遨游主机LinodeLOCVPS主机云搬瓦工80VPSVultr美国VPS主机中国VPS推荐: 阿里云腾讯云。LNMP付费服务(代装/问题排查)QQ 503228080
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|VPS侦探 ( 鲁ICP备16040043号-1 )

GMT+8, 2024-12-29 02:40 , Processed in 0.036344 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表