容器运行的服务,自己请求自己失败????

2019-07-23 16:52:36 +08:00
 Hopetree

情景:我是 django 的一个 web 服务,运行在容器中,然后使用 nginx 容器进行代理,服务上门有个工具接口,可以进行 requests 请求,反正就是访问任意域名。

问题:现在我发现的问题是,我服务的这个工具可以访问其他网站,但是访问自己的域名就请求超时。这个情况在使用容器化之前是没有遇到过的,所以我可以确定跟容器化之后有关,我怀疑的问题在于 nginx 的配置(因为之前有个跟 nginx 配置相关的问题),但是不知道什么可能引起这种情况。

之前跟 nginx 有关的问题是添加参数解决了,所以这次不知道是否还需要添加参数,之前问题地址: https://www.v2ex.com/t/581432#reply3

3483 次点击
所在节点    Django
5 条回复
NaVient
2019-07-23 16:54:28 +08:00
容器内部的请求最好走容器内部的地址,不要走到外部去
Hopetree
2019-07-23 16:56:24 +08:00
@NaVient :cry: 这个必须往外走啊,因为这个不是一个接口请求数据的操作,而是一个爬虫,就是爬任何一个网站,去提取一个简单的信息,所以肯定是往外走的,问题就是我搞不懂为啥不能访问自己
smallSoda
2019-07-23 17:02:47 +08:00
容器要配置 HairpinMode=true 就可以自己访问自己
ihciah
2019-07-23 18:58:48 +08:00
碰到过这个问题,开 hairpin 就行了
Hopetree
2019-07-23 23:09:24 +08:00
@smallSoda
@ihciah
请问我用的 docker-compose 启动容器是要设置什么参数?我查了半天没查到,我自己设置 HairpinMode: true 报错了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/585496

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX