lee*_*ker 9 firefox dns google-chrome hosts-file macos
为了进行 Web 开发,我在/etc/hosts. 它们代表了本地运行的几个不同的网站。
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我发现从这些域中的任何一个加载页面都有 5 秒的延迟。浏览器开发者工具将此延迟归因于 DNS,并且始终恰好是 5 秒。
奇怪的是,这种情况也只发生在 Chrome 和 Firefox 中。Safari 完全没有延迟。
我认为浏览器可能会在回退到主机文件之前查询正常的 DNS 服务器。执行 DNS 查询dig site1.local不会返回结果(正如您所期望的),但也很快返回结果(17 毫秒),所以情况似乎并非如此。
是什么导致在文件中查找主机时出现 5 秒的延迟/etc/hosts?如何减少或消除这种延迟?
lee*_*ker 14
访问以 结尾的主机名时出现 5 秒延迟.local是由于 Bonjour 造成的,并在这个答案中解释了 Stack Overflow 上的另一个问题。
我能够使用该答案中建议的解决方法,为每个服务器添加一个 IPv6 条目,并避免 5 秒的延迟。目前还不清楚为什么同时添加 IPv4 和 IPv6 条目会导致 Bonjour 被避开,但它确实有效。
127.0.0.1 site1.local
127.0.0.1 site2.local
127.0.0.1 site3.local
::1 site1.local
::1 site2.local
::1 site3.local
Run Code Online (Sandbox Code Playgroud)