这个问题已经以多种形式提出,我花了六个多小时在互联网上搜索解决我问题的答案。到目前为止,我一直没有成功。我使用MAMP开发PHP应用程序,我昨天从Snow Leopard升级到Lion,并且我的本地应用程序运行速度慢得多。我相信它是一个关于Lion如何处理IPv6的DNS查询问题。我尝试了以下步骤来解决问题:
这解决了一些问题,但还有一个问题我还没弄明白。在我们的PHP应用程序中,我们定义了SOAP端点,如下所示:
API:8080 /合同/服务/ SomeService WSDL
在每台服务器上,主机文件中都有一个“api”条目,指向SOAP API的IP地址。所以,当我想指向我们的开发服务器时,我将我的hosts文件更改为:
132.93.1.4 api
(不是真正的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”的解决方案。
答案 0 :(得分:1)
自从我升级支持IPv6的调制解调器以来,我遇到了同样的问题。添加两种主机名格式(IPv4和IPv6)修复了以下问题:
::1 domain.dev # <== localhost on crack
127.0.0.1 domain.dev