最近,在網站訪問記錄中經常能看到一種現象:同一個 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 之後,就沒再出現過很難打開的情況。