情景復(fù)現(xiàn)
項(xiàng)目本地開(kāi)發(fā)過(guò)程中寫(xiě)了一個(gè)curl方法向遠(yuǎn)程服務(wù)器推送一條信息。本地執(zhí)行速度正常。但是服務(wù)器上執(zhí)行缺異常緩慢。
問(wèn)題原因
一句話(huà)總結(jié):服務(wù)器都開(kāi)啟了 IPv6 卻沒(méi)有路由,無(wú)法真正工作。在沒(méi)有 IPv6 的情況下,會(huì)等待 IPv6 解析失敗 timeout 之后才按以前的正常流程去找 IPv4
解決方案
對(duì)于 PHP curl 來(lái)講,只需要加上下面一句即可解決延遲問(wèn)題:
- 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 );