天天看點

WordPress開啟Nginx fastcgi_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上使用。

WordPress開啟Nginx fastcgi_cache緩存加速
一、安裝Nginx ngx_cache_purge子產品 官方網站:http://labs.frickle.com/files/

1.1 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。

1.2 Oneinstack

如果你用的是OneinStack面闆,可以通過以下指令來編譯ngx_cache_purge子產品。

使用Nginx -V檢視編譯參數添加add-module時,一定要根據你自己的Nginx的編譯參數來操作,也就是說保留原來的Nginx參數再加上add-module。例如我的:

WordPress開啟Nginx fastcgi_cache緩存加速

安裝Nginx ngx_cache_purge子產品成功。

WordPress開啟Nginx fastcgi_cache緩存加速

1.3 其它面闆

如果你用的是其它的面闆、BT寶塔面闆。

—————————————————————————————————————————————

BT寶塔面闆:

當然也可以用 Nginx -V 來檢視的所有編譯子產品裡面有沒有這個子產品。寶塔面闆是已經編譯好了。

Nginx開啟fastcgi_cache緩存-配置執行個體

既然編譯好了子產品,要用這個緩存功能,我們就需要配置www.httple.conf這個檔案,很好找

WordPress開啟Nginx fastcgi_cache緩存加速
安裝好子產品之後,配置nginx

在server子產品下面添加如下代碼,請按着自己實際情況自行修改。

我将如下幾行代碼,放置在我的nginx.conf檔案裡面,因為,我有好幾個網站在一個伺服器上。

二、Nginx開啟fastcgi_cache緩存-配置執行個體

2.1 配置執行個體

下面我直接貼出httple.net的Nginx開啟fastcgi_cache緩存配置執行個體,詳細的說明如下:

2.2 有關說明

本地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 Helper

是以,接下來我們就去安裝這個插件 。非常簡單,直接進入WordPress背景插件安裝界面搜尋 Nginx Helper 關鍵詞線上安裝即可。

WordPress開啟Nginx fastcgi_cache緩存加速

插件還提供了其它的一些設定,例如發表新文章、新評論時是否更新Nginx緩存。

WordPress開啟Nginx fastcgi_cache緩存加速

由于插件作者定義的緩存路徑是 /var/run/nginx-cache ,而我們可能會根據伺服器實際情況來自定義緩存路徑,這樣一來,緩存路徑的不同就會導緻插件無法找到緩存檔案并删除!

解決辦法:

很簡單,在WordPress根目錄下的wp-config.php中新增如下代碼即可:

Ps:不知道添加到第幾行的話,可以添加到 define(‘WPLANG’, ‘zh_CN’); 的後面即可。添加後建議重載一下php,確定變量生效(主要針對開啟了PHP緩存的網站)。

如果你發現上述定義路徑的代碼不生效,你可以采用以下建議:

如果你發現你的評論過的使用者依然用的是緩存,那應該是WP沒有記住cookie,把以下代碼加入到functions.php 中即可。

在啟用fastcgi_cache緩存時,發現在Nginx配置檔案中添加了Cache-Control資訊,但是總是不生效。HTTP頭部資訊會總會包含以下資訊:

經過排查,問題出在了LNMP和Oneinstack一鍵包中的session.cache_limiter的PHP.ini設定部分, 預設值是nocache,我們需要将它設定為none即可。

WordPress開啟Nginx fastcgi_cache緩存加速

Nginx開啟fastcgi_cache緩存對于加快網頁響應速度以及節省伺服器資源有着非常重要的意義,啟用緩存後伺服器的承載能力有了非常大的提升。

WordPress開啟Nginx fastcgi_cache緩存加速

繼續閱讀