這個是昨天在查找一個PHP調用遠程HTTP接口耗時較長問題時發現的。
背景介紹:
調用服務器(下面簡稱C)和遠程接口服務器(S)在同一機房,通過域名訪問
C綁hosts,設置S的內網IP,耗時幾十ms
C綁hosts,設置S的公網IP,耗時幾十ms
C不綁hosts,直接走DNS,耗時幾百ms
問題好像很明顯了,應該是DNS問題。
好的,那麼看一下C上設置的哪個DNS。
cat /etc/resolv.conf 一查,發現是8.8.8.8…………厄,慢是有道理的~
好,換成自己的DNS服務器地址再測。
擦,爲毛還是幾百ms???
直接用CLI運行PHP代碼……幾十ms,沒問題
果真哪裏緩存了DNS信息?驗證下:
直接刪掉DNS信息再測
CLI運行……直接不通,OK
WEB運行……果然還是通的!
so,修改DNS後,還需手動重啓fastcgi。