站長資訊網
最全最豐富的資訊網站

nginx中如何優化wordpress

nginx中如何優化wordpress

Nginx下WordPress運行緩慢的解決方法:

wordpress運行緩慢優化的方法

1. 減少插件的使用

這是首要的一點。大部分人往往都沒足夠的代碼知識,更不可能做到每個插件的代碼化,故大部分人都在用大量插件等。大部分的插件都會進行數據查詢與生成,這在頁面生成過程中 將耗費時間。如果剛好你的主機限制比較嚴格的話(為了均衡資源使用率),這個時間甚至會變得比較長。減少插件是非常必要的優化手段之一

2. 減少HTTP請求

每一次對于JS,CSS等文件的訪問都是一次HTTP請求。插件用得少,HTTP請求數自然就更少。速度自然快了

WP在每一次的頁面訪問時,都會判斷插件的使用情況。讓WP做更少的判斷就等于做更少的數據查詢。解放它的負擔吧。

3. 謹慎的選擇主題或手動優化

許多主題雖然漂亮但在優化方面做得并不算好,各種JS,各種CSS,各種背景圖片,各 種空行,各種冗余,這些都會影響到載入速度。不過這并不意味著不能選擇絢麗的主題,而是主題應該要基本滿足以下要求,或者你手動修改它使其滿足以下要求:

合并CSS和JS:將多個CSS合并為1個。

合并背景圖片:使用CSS Sprites將大部分的背景圖片合并為1個文件,同樣是減少HTTP請求,減少文件體積,加快渲染時間。

減少數據查詢:能用HTML直接輸出的地方就不要搞個數據查詢。

合理的JS和CSS位置:合理的將一些JS和CSS放置到網頁底部。

優化主題的背景圖片

4. 減少外部資源的使用

外部資源就是不在自己服務器上的資源。使用太多的外部資源會遇到以下問題:

解析DNS的時間變長

每一個域名都是需要DNS解析才能夠正常工作。如果網站上的內容同時需要加載a.com,b.com,c.com,d.com這些網站的資源,那就 需要更多的時間去分別解析每個域名的DNS,建立連接。而同樣的,如果自己的站點是a.com,如果同時加載1.a.com,2.a.com這些類似的域名,也同樣會加長DNS解析時間。外部資源是不可能完全避免的,但能少則少。

外部資源的加載速度不可控制

這主要是針對一些國外站點的內容而言,比如fickr,twitter等,因為眾所周知的原因,加載它們的資源會明顯減慢載入速度。而國內的站點相對來說速度還算是比較快。

5. 減少數據庫查詢,或使用數據庫緩存插件

許多的插件都需要數據庫查詢,上面關于插件和主題的部分也提到了優化代碼盡量減少數據庫的查詢次數。如果不懂,可以考慮使用數據庫緩存,它能夠將數據庫的查詢內容緩存起來

需要注意的是,數據庫緩存插件不要和靜態化緩存插件一起使用。因為兩者都是數據緩存內容減少查詢,如果一起用就等于重復勞動。

6, 使用頁面靜態化緩存插件

靜態化緩存插件和數據庫緩存插件的原理差不多,都是將內容提前整理好并生成靜態的文件,當需要的時候直接拿出來,而不需要再去查找、生成,浪費時間。緩存過的靜態文件基本上可以等同于一張靜態圖片,不需要執行太多復雜的內容。

還有一些其他優化的方法等,使用GZIP壓縮網頁、優化博客文章圖片、使用CDN分布式網絡加速靜態文件等。

安裝wordpress插件檢查緩慢原因

本站運行一段時間后,每次訪問首頁最多時候需要20秒鐘以后上, 訪問一個單獨文章頁面也要10秒,簡直不可接受,基本都要崩潰了, 最后下定決心徹底解決它。

通過查閱大量資料, 參照前面一節的辦法對系統做了優化。

1. 首先屏蔽全部插件,發現系統問題依然存在, 打開首頁速度依然在10秒鐘左右

2. 通過httpwatch檢查http請求情況,發現訪問首頁中,獲取php頁面時間是9秒鐘, 打開圖片、js、css等時間是2~3秒鐘左右, 因此不是http請求過多造成的。

3. 打開mysql數據庫的慢查詢,檢查數據庫的慢查詢情況,發現多數查詢都比較快,對一些查詢做了測試,速度非常快。因此數據庫因素也可以排除了。

實在沒辦法了, 最后考慮找wordpress插件來研究一下在顯示首頁中都發生了那些內容,然后看看那里占用時間最長, 然后有針對的慢慢優化,只好這么干了。

到了wordpress網站,搜索 debug插件, 搜索了很多,試用了很多,都不太符合自己的要求。最后發現了一個插件“Debug Queries”,按照wp的老習慣下載并且安裝,最后路下圖,點擊啟用按鈕開啟插件。

nginx中如何優化wordpress

安裝完成插件后,打開網站首頁,查看效果發現沒有任何變化

最后打開一個文章頁面,在文章頁面最下面發現了久久尋找的東西,路下圖:

nginx中如何優化wordpress

圖中已經用不同顏色的區域做了一些標注

紅色區域: time:0.000xxxx 查詢需要的時間

綠色區域: Query: 查詢的sql語句

Call from: require,xxx 調用順序等等

然后下面是另外的調用。 頁面顯示了本次頁面顯示過程調用了那些函數以及調用過程,及需要的時間(數據庫的查詢時間,根據這個時間及總時間我們計算出php花費的時間)

最后頁面路下圖:

nginx中如何優化wordpress

藍色部分:是本次訪問數據查詢時間 匯總, 可以看到查詢共花費了0.24秒, 發生了83次查詢(這個也說明wp插件帶來性能的問題,只是目前系統中數據量較少,還不至于影響系統的性能)

綠色部分:是本次用戶訪問過程中總體時間的匯總,這里統計的應該是包括了php的總體時間。

紅色部分:是本次訪問的總時間

紫色部分: 本次訪問中花費在php程序中消耗的百分比。97.5%

黃色部分:是本次訪問中花費在MySQL數據庫上時間的百分比 2.5%

從上面數據中我們可以看到, 一次10秒鐘的用戶訪問中, mysql花費時間僅僅占用了2.5%因此可以肯定這次10秒鐘的訪問問題出在mysql以外的環節上, 主要應該是php的問題。

重新啟動php進程解決緩慢問題

從上面部門的分析中我們已經可以了解到問題很可能出在php上面,排查php問題,不是我的專長,因此決定重新啟動php進程看一下效果。

1. 查找php進程

輸入 su – 命令, 切換端到root帳號下

在輸入: ps -ef | grep php 命令,查看php進程,如下

nginx中如何優化wordpress

從圖中我們可以了解到php進程id 是 26765, 進程名稱php-fpm(這個是nginx需要的php程序)。

2. 查找php進程的啟動路徑

輸入如下命令 lsof -p 8584(這里的8584是在進行問題解決時php進程的id,上面26765還是最近寫文章是查找的進程的id)

nginx中如何優化wordpress

3. 關閉進程

kill -9 8584 關閉老的php進程

有的時候php開辟了很多進程, 不好關閉,可以采用下面的辦法進行

killall php-fpm (本站就是采用這個辦法進行的)

4. 重新啟動php進程

輸入如下命令

/usr/sbin/php-fpm 重新啟動進程

更多wordpress相關技術文章,請訪問wordpress教程欄目進行學習!

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲精品中文字幕乱码影院| 色噜噜亚洲精品中文字幕| 亚洲精品无码专区久久久| 国产热re99久久6国产精品| 国产成人亚洲精品| 久久精品黄AA片一区二区三区| 999成人精品视频在线| 99久久人妻精品免费一区| 精品国产91久久久久久久| 日韩精品无码免费视频| 日韩国产精品无码一区二区三区| 国产成人麻豆精品午夜福利在线| 日韩精品国产丝袜| 四虎永久在线精品波多野结衣| 国产偷久久久精品专区| 国产精品美女久久久久av爽| 日韩精品中文字幕视频一区| 欧美日韩精品一区二区在线观看 | 中文字幕日韩精品一区二区三区 | 国产中文在线亚洲精品官网| 亚洲AV永久无码精品网站在线观看 | 国产麻豆精品精东影业av网站| 国产精品入口在线看麻豆| 精品国产一二三产品价格| 中文字幕精品一区影音先锋| 无码精品久久久天天影视| 久久无码专区国产精品s| 国产日韩一区二区三区在线观看| 久草精品视频在线播放| 亚洲日韩精品无码专区网站| 国产精品99re| 日韩一区二区三区视频久久| 日韩在线观看视频免费| 精品日韩在线视频一区二区三区| 国产精品亚洲w码日韩中文| 日韩人妻无码一区二区三区 | 精品一区二区三区在线播放| 久久久久久久亚洲精品| 久久精品国产99久久久| 亚洲国产精品无码第一区二区三区| 999久久久免费精品国产|