fastcgi模式會緩存DNS

這個是昨天在查找一個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。

發佈了149 篇原創文章 · 獲贊 75 · 訪問量 64萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章