情景復(fù)現(xiàn)
項目本地開發(fā)過程中寫了一個curl方法向遠(yuǎn)程服務(wù)器推送一條信息。本地執(zhí)行速度正常。但是服務(wù)器上執(zhí)行缺異常緩慢。
問題原因
一句話總結(jié):服務(wù)器都開啟了 IPv6 卻沒有路由,無法真正工作。在沒有 IPv6 的情況下,會等待 IPv6 解析失敗 timeout 之后才按以前的正常流程去找 IPv4
解決方案
對于 PHP curl 來講,只需要加上下面一句即可解決延遲問題:
- curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
PBootCms的解決方案
文件位置:/core/function/handle.php,搜索curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);,
在下方插入一行
- curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );