客戶網站在中國大陸,迭代幾輪並引入若干新插件後,後台性能急劇下降,後颱風吹草動,前台頁面立刻紋絲不動。

Query Monitor顯示出站HTTP API CALLS,意料中的api.wordpress.org,my.elementor.com至少能返回HTTP 200 OK,另有4個插件的更新遠端被Connection Reset,2個不間斷超時且有超時重試設置,更糟糕的是2個插件的作者決定自己做upgrade check,有一個插件(功能需要,但實現欠妥)把500ms的HTTP請求(到國內三方服務API)寫進WP前台HOOK。

一輪試驗下來,發現普通加速方法效果不好,後台請求仍超時只是頻率有所降低,前台請求反而變慢。

客戶每天都要頻繁登錄操作後台,在找到合適線路的跳板服務器之前(待選項裡可能只剩香港),不得已先用:

define( 'WP_HTTP_BLOCK_EXTERNAL', true );

這會切斷網站後台到外網的所有請求,後台立刻變得飛快,但也有代價。

有些插件的運行時就像沒網絡玩不了的所謂“單機遊戲”,這個看情況,影響核心功能的,考慮加白名單,讓它過,只影響更新的,先Ban掉,要更新的時候再放,好在多數插件似乎都可以先不進白名單。

define( 'WP_ACCESSIBLE_HOSTS', join(',', [ '*.wordpress.org', '*.imagify.io', '*.runcloud.io', '*.weixin.qq.com', ]);

因為我們放過到*.wordpress.org的所有請求,絕大多數插件的日常搜索、下載、安裝、更新都不受影響(讀者可以考慮配合Easy Updates Manager來選擇性地啟動自動更新),後台因此不會有“飛快”的速度,但至少不再給人“慢”的感覺,這是一種折中平衡的方案。

這個站點的插件數量60+,屬於功能相對複雜的項目,國內的WP站點只要插件一多碰到這類問題幾乎是必然的,也沒有特別乾淨的解決方法,因為國內服務器避不開網絡限制的根本問題,但功能沒那麼複雜的項目一般不需要這麼折騰,也不必過於擔心,。

發現錯別字麻煩選中按Ctrl+Enter

文章更新時給我發郵件

類似帖子

3 Comments
內聯反饋
查看所有評論
Tonvin Tian
6 月前

非常棒,感謝分享。
另外是否可以分享下,如果安裝了非常多的插件,是否有必要對插件做版本控制跟踪。

7 月前

學習了!我也試試這個【WP_ACCESSIBLE_HOSTS】的方法,謝謝分享