WP_使用_FastCGI_Cache_实现高效页面缓存

前言

页面缓存(Page Cache)是 WordPress 性能优化比较重要的一环,目前 WP 有很多页面缓存插件:W3 Total Cache、WP Super Cache、Comet Cache 等,不过它们都是 务器软件 ——PHP—— WP缓存插件 —— 本地或对象缓存,差不多要经过四个阶段,在高并发下效率是很低的。

十多年的合山网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整合山建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“合山网站设计”,“合山网站推广”以来,每个客户项目都认真落实执行。

而目前比较流行的就是服务器软件 —— FastCGI Cache 或者 服务器软件 —— SRcache 拓展 —— 对象缓存,跳过 PHP 以提高效率。 后者的教程:《用 Nginx+Redis Cache 给 WordPress 提速》

从效率上讲两个方式是没有差别的,这篇文章也证明了这一点,不过我认为连接 Redis,有需要经过 TCP/IP 并且 Redis 的执行也有一定损益,所以我更中意于前者。

原理

Nginx 内置 FastCGI 缓存,讲缓存结果置放到 tmpfs 内存中去,就可以极大的提高效率和处理时间。不过 FastCGI 缓存不能自动清除缓存,当文章需要变动或者产生新评论时就会尴尬了,因此还需要搭配ngx_cache_purge拓展,搭配Nginx Helper插件以避免前面所说的尴尬。

教程

安装Nginx ngx_cache_purge 模块

复制代码

#下载 ngx_cache_purge git clone https://github.com/FRiCKLE/ngx_cache_purge.git #重新编译 Nginx ./configure ···你的参数···. --add-module=/path/to/ngx_cache_purge-2.3

ramdisk

将 FastCGI_cache 内容 放置在 /var/run 中挂载为 ramdisk,当然了如果网站内容很多,那么内存也一定要大。
一般来说,/var/run 的大小是总内存的 20%,例如一个 4G 内存的机器,可用容量为 794 M

引用

root@mf8.biz:~# free -m
total used free sharedbuffers cached
Mem:3965 1443 2521100160687
-/+ buffers/cache:595 3370
Swap:000

root@mf8.biz:~# df -h /var/run
FilesystemSizeUsed Avail Use% Mounted on
tmpfs 794M352K793M 1% /run

修改Nginx虚拟主机配置

一、在 server{} 前添加:

复制代码

fastcgi_cache_path /var/run/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m; 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;

二、然后在 server{} 内添加:

复制代码

set $skip_cache 0; 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; } location ~ /purge(/.*) { allow 127.0.0.1; deny all; fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1"; }

三、在 location ~ [^/].php(/|$) { 段中添加:

复制代码

fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache WORDPRESS; fastcgi_cache_valid60m;

WP设置

一、在wp-config.php中添加:

复制代码

define( \'RT_WP_NGINX_HELPER_CACHE_PATH\',\'/var/cache/nginx-cache\');

二、安装Nginx Helper插件
三、按下图设置,其他默认即可:

原文地址:http://click.aliyun.com/m/20517/


新闻名称:WP_使用_FastCGI_Cache_实现高效页面缓存
浏览路径:http://scyanting.com/article/cpepps.html