Domain-Name-System
CentOS 7 上 curl 和 wget 響應緩慢
我的問題是我無法弄清楚為什麼我使用 curl 和 wget 得到如此緩慢的響應時間。當我說慢時,我的意思是一個頁面至少需要五到六秒,而這應該只需要一秒或更短的時間。
我已經測試了各種場景,但我似乎根本無法做出任何改變。
我的伺服器是:CentOS Linux release 7.3.1611 (Core)
我正在嘗試解決此問題,因為它會降低新安裝的 WordPress 應用程序的速度。我最終確定(使用 Xdebug),而不是 WP 的問題,它似乎是使用 curl 的 PHP 呼叫。隨後我一直在命令行進行測試,沒有任何其他應用程序。
因此,例如:
$ curl -o /dev/null "http://techrepublic.com" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 178 100 178 0 0 30 0 0:00:05 0:00:05 --:--:-- 41
URL 是什麼並沒有什麼區別,但是如果我使用IP 地址而不是域名,則根本沒有問題。
使用 wget 也存在同樣的問題。
所以,我嘗試過的一些事情是:
- a) 更改 /etc/resolv.conf 中的 DNS 伺服器
- b) curl 和 wget 的效果相同
- c) 與 http 和 https 的效果相同
- d) 重頁和輕頁的效果相同
- e) 在 Windows 10、同一網路、同一路由器等上使用 curl 進行測試,大約需要一秒鐘或更短的時間
- f) 以普通使用者和 root 使用者身份測試
我的主 DNS 伺服器現在在 /etc/resolv.conf 中列為 8.8.8.8,應該沒問題。
為了獲得更多資訊,我還使用了這個:
$ curl -L --output /dev/null --silent --show-error --write-out 'lookup: %{time_namelookup}\nconnect:%{time_connect}\nappconnect:%{time_appconnect}\npretransfer:%{time_pretransfer}\nredirect:%{time_redirect}\nstarttransfer: %{time_starttransfer}\ntotal:%{time_total}\n' 'techrepublic.com' Output: lookup: 5.514 connect:5.528 appconnect:0.000 pretransfer:5.528 redirect:5.819 starttransfer: 6.680 total:12.552
(不知道為什麼,但以這種方式使用 curl 似乎比在沒有所有選項的情況下使用它需要更長的時間,但無論哪種方式,它仍然需要太長時間)
所以,我想不知何故,某處,這與 DNS 查找有關,但我真的不確定還有什麼可以嘗試的。這非常令人沮喪。
任何幫助將不勝感激。謝謝!
好的,問題解決了。在再次鑽研網路以解決類似問題後,我來到了這個網站,它描述了同樣的問題:
http://aarvik.dk/disable-ipv6/
將以下行添加到 /etc/resolv.conf 的底部為我解決了這個問題,但我建議您完整閱讀這篇文章:
options single-request-reopen