介紹
這個(gè)教程,我認(rèn)為最大的特色就是不用 Super WP Cache糙置、W3TC 這里的插件來實(shí)現(xiàn)緩存是目,而是最大化利用云服務(wù)器的特性,將傳統(tǒng)的頁面緩存丟入對象緩存實(shí)現(xiàn)加速的鏈: Nginx/Apache —— PHP-FPM/Mod-PHP —— WP緩存插件 —— 生成緩存 —— PHP-Redis 拓展 —— Redis —— 內(nèi)存 縮短到: OpenResty —— Nginx SRcache 拓展 —— Redis —— 內(nèi)存揉抵,直接跳過 PHP嗤疯,提高效率避免瓶頸。 更多內(nèi)容請參考:《用 Nginx+Redis Cache 給 WordPress 提速》
因?yàn)槲覀円婚_始就選擇了 OpenResty 作為 Web 軟件身弊,所以簡單粗暴阱佛,直接設(shè)置虛擬主機(jī)就行。
必備步驟:安裝并設(shè)置以Unix Socket 運(yùn)行的 Redis-Server
設(shè)置
這里以域名:www.mf8.biz凑术,虛擬主機(jī)文件:/usr/local/openresty/nginx/conf/vhost/ 為例。
修改 /usr/local/openresty/nginx/conf/vhost/:
在最最開頭加入:
upstream redis {
server 127.0.0.1:6379;
keepalive 512;
}
然后催首,加入 Redis 緩存的設(shè)置內(nèi)容泄鹏,可以添加在 root /data/wwwroot/mf8; 后,
set $skip_cache 0;
#POST請求直接調(diào)用后端
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 /redis-fetch {
internal??;
set??$redis_key $args;
redis_pass??redis;
}
location /redis-store {
internal??;
set_unescape_uri $key $arg_key ;
redis2_query set $key $echo_request_body;
redis2_query expire $key 14400;
redis2_pass??redis;
}
并修改反代 PHP-FPM 部分:
location ~ [^/]\.php(/|$) {
set $key "nginx-cache:$scheme$request_method$host$request_uri";
try_files $uri =404;
srcache_fetch_skip $skip_cache;
srcache_store_skip $skip_cache;
srcache_response_cache_control off;
set_escape_uri $escaped_key $key;
srcache_fetch GET /redis-fetch $key;
srcache_store PUT /redis-store key=$escaped_key;
more_set_headers 'X-Cache $srcache_fetch_status';
more_set_headers 'X-Store $srcache_store_status';
#PHP版本號有出入的別弄錯(cuò)了
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/:/proc/";
}
如果覺得還有點(diǎn)繞,這里是一份完整配置文件可以參考:
https://gist.github.com/ivmm/80e4b2baff4573a2af54af149bc1cb72
插件
首先霉猛,感謝這個(gè)方法有rtCamp提出珠闰,并為緩存刷新清理的問題提供了解決插件 ——Nginx Helper插件。
因?yàn)橛眠@種緩存方式呢伏嗜,緩存往往是定死的,也就是說吹散,評論更新了八酒,文章更新了,緩存還是不會(huì)自動(dòng)更新的羞迷。所以我們需要 Nginx Helper 插件衔瓮。
搜索 或者 下載并上傳Nginx Helper插件,并進(jìn)行如下設(shè)置:
然后就可以開心的看網(wǎng)站的速度热鞍,咻咻咻了衔彻。通過瀏覽器開發(fā)者工具偷办,看到 HIT 說明緩存已經(jīng)命中。