嗨各位朋友,这个问题我已经肝了好几天无果了:
我Mac上的Docker中运行了一个PHP容器,用的是官方的php:5.6-fpm这个镜像, IP地址是172.17.0.4
另有一个提供接口的服务器,在内网中,IP地址是192.168.1.249。
为了在容器中能访问到接口,我在PHP容器中添加了一个hosts来访问接口服务器:
# docker exec -it php56 bash
# cat /etc/hosts
...
172.17.0.4 589ce93fa246
192.168.1.249 api.test.com
访问接口的代码如下:
curl('http://api.test.com/articles'); // curl是自定义函数且无问题。
然而问题来了, 这个接口虽然能访问通,但是需要至少5秒才能返回结果。
接口本身是没有问题的, 在主机中使用浏览器和postman访问都能正常访问,速度是几十毫秒左右。
调用的代码应该也没有问题,在主机中用cli模式运行这个curl函数也能正常访问。
我觉得应该是dns方面的问题,但我并不懂dns,希望各位能指点下,非常感谢。