最近,在網站訪問記錄中經常能看到一種現象:同一個 IP 在短時間內有大量訪問,比如說某 IP 每分鐘開啟主頁上百次。還有一種暴力猜解後臺密碼的,一下午訪問幾萬次,訪問的 URL 都是 wp-login.php 。

遇到這種情況時,網站基本是打不開的,甚至遠端桌面都很難登陸上去。起初以為是頻寬小、網路擁堵,後來發現根本不是這麼回事兒。難以訪問的根源是 CPU 佔用率太高,PHP 佔用 50%,MySQL 佔用 50% 。這些偽靜態頁面並不是真正靜態,每次被訪問的時候還是要動態的執行一遍。網站這麼卡又無力吐 槽 WordPress 的渣渣效能,看來要靠快取來解決這個問題,也就是讓這些偽靜態變為 「真」 靜態。

以前用的主機都是 LNMP 環境,主機商經常會提到有這加速那快取的。這回用 IIS 徹底傻眼了,那些東西似乎都用不上了。折騰了一陣 IIS 自帶的快取 功能,發現根本不起作用。 IIS 折騰不動就折騰 WP,這才想到 WP Super Cache 外掛,這貨就是用來把部落格靜態化的。在 IIS 環境裝這外掛受到一些限制,也遇到點麻煩,最終還是順利折騰上了。

 

 

外掛配置好之後,可以看到 cache 資料夾中出現靜態快取了,每個資料夾中還有桌面版和移動版兩種快取,這個外掛做的還真完善。

 

 

外掛配置好之後,在 17ce 網站簡單測試了一下,開啟快取前後有很大差距的:開啟快取之前,伺服器 CPU 佔用 100%,而且滿載時間很長,全國普遍響應時間超過 5 秒; 開啟之後,伺服器 CPU 瞬間達到 40%,之後立刻降回到 0%,全國普遍響應速度不到 1 秒。

 

 

 

 

網站經常有一分鐘內上百次訪問的情況,但自從開啟 WP Super Cache 之後,就沒再出現過很難開啟的情況。