docker 服务端hosts如何配置
比如:我有两个域名,分别指向127.0.0.1
crm.domain.com
api.domain.com
docker搭建3个容器,分别:nginx,php,alpine
本地开发环境
用crm.domain.com/a.php 访问服务端。然后服务端又调用api.domain.com/b.php返回数据给a.php,但是会报错:
cURL error 7: Failed to connect to api.domain.com port 80: Connection refused (see http://curl.haxx.se/libcurl/c...
目前本地分别访问
crm.domain.com/a.php
api.domain.com/b.php
都是没有问题的。因为我在宿主机的/etc/hosts里指向了127.0.0.1'
我理解是要在服务端配下api.domain.com 的hosts 。我在nginx的容器里 配了,但没有用呀
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看了半天有点晕。
你现在的环境,是不是其实是 nginx 容器收到 客户端请求 a.php,之后这个 a.php 又去 请求 b.php?
如果是这样的话,a.php 去找 b.php 这个动作是在 php.fpm 这个容器里完成的,而 php 容器应该是既不知道 crm.domain.com 也不知道 api.domain.com ,因为那些本来都归 nginx 管,php 容器看到的 127.0.0.1是他容器自身,里面只有个php-fpm可用,他看不到 nginx 的 80 端口。
本身上了docker之后多个容器之间沟通就是有难度的。
当然这个需求本身是很常见,但是这么做不是很优雅,一般来讲如果有多个 domain ,个人建议是多开 nginx 并使用多端口独立处理的。
如果只用一个 nginx 的话,最好不仅在 /etc/hosts 写域名,还要在,还要写好 expose 和 links ,最好使用compose,保证多个容器间可以不经过宿主机直接通信。