【问题标题】:Max OS Lion 10.7.3 DNS lookup very slow with MAMP使用 MAMP 的 Max OS Lion 10.7.3 DNS 查找非常慢
【发布时间】:2012-05-16 10:49:06
【问题描述】:

这个问题有多种形式,我花了六个多小时在互联网上搜寻可以解决我问题的答案。到目前为止,我一直没有成功。我使用 MAMP 开发 PHP 应用程序,昨天我从 Snow Leopard 升级到了 Lion,我的本地应用程序立即运行得慢了很多。我相信这是关于 Lion 如何处理 IPv6 的 DNS 查找问题。我尝试了以下步骤来解决问题:

  1. 已将我的主机文件中的所有条目更改为不再使用 .local TLD
  2. 将我的主机文件中的所有条目放在单独的行中
  3. 确保我的主机文件具有正确的编码
  4. 向我的主机文件中的所有本地条目添加了 IPv6 条目
  5. 已安装 dnsmasq(可能没有正确完成)
  6. 将我的所有主机文件条目放在 fe80::1%lo0 localhost 行之前

这解决了一些问题,但还有一个问题我还没有弄清楚。在我们的 PHP 应用程序中,我们这样定义 SOAP 端点:

api:8080/contract/services/SomeService?wsdl

在每台服务器上,主机文件中都有一个“api”条目,它指向 SOAP API 的 IP 地址。因此,当我想指向我们的开发服务器时,我将主机文件更改为如下所示:

132.93.1.4 接口

(不是真实IP)

在主机文件中对 api 条目的 DNS 查找仍然每次需要 5 秒。当我 ping api 时,结果立即返回。但是,当我 ssh api 时,大约需要 5 秒钟才能连接到服务器。这意味着当我加载我的 PHP 应用程序时,任何 SOAP 查询都需要 5 秒 + 无论实际查询需要多长时间,这使得本地开发完全不可能。我意识到我们定义端点的方式可能不是最好的设计决策,但这是我必须使用的。

从我读过的其他问题来看,我相信它首先尝试在 IPv6 中查找“api”,失败,然后在 /etc/hosts 中查找。我尝试使用 dnsmasq 切换此顺序,但没有运气。有谁知道如何强制它先读取 /etc/hosts 或完全跳过 IPv6?

更新:我将主机文件中的条目更改为 api.com、api.foo 以及带有“.”的任何内容在里面,它立即做出了反应。不过,我还是想找一个不需要改名“api”的解决方案。

【问题讨论】:

  • 我唯一成功的解决方案是使用带有“。”的 api 指针。在里面。因此,我没有将主机文件中的“api”指向 API 机器的 IP 地址,而是使用“api.dev”。
  • 感谢您的提问。 os x 10.8.2 和 MAMP 2.1.1 基本上是同样的问题。通常的 IPv6 技巧(带有选项卡)不起作用。到目前为止,我唯一的解决办法:关闭 WiFi。

标签: php dns osx-lion mamp ipv6


【解决方案1】:

自从我升级支持 IPv6 的调制解调器后,我遇到了同样的问题。添加两种主机名格式(IPv4 和 IPv6)解决了以下问题:

::1 domain.dev # <== localhost on crack
127.0.0.1   domain.dev

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2011-12-22
    • 2013-09-03
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    相关资源
    最近更新 更多