V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Hopetree
V2EX  ›  Django

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

  •  
  •   Hopetree ·
    Hopetree · 2019-07-23 16:52:36 +08:00 · 3638 次点击
    这是一个创建于 1975 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    5 条回复    2019-07-23 23:09:24 +08:00
    NaVient
        1
    NaVient  
       2019-07-23 16:54:28 +08:00
    容器内部的请求最好走容器内部的地址,不要走到外部去
    Hopetree
        2
    Hopetree  
    OP
       2019-07-23 16:56:24 +08:00
    @NaVient :cry: 这个必须往外走啊,因为这个不是一个接口请求数据的操作,而是一个爬虫,就是爬任何一个网站,去提取一个简单的信息,所以肯定是往外走的,问题就是我搞不懂为啥不能访问自己
    smallSoda
        3
    smallSoda  
       2019-07-23 17:02:47 +08:00
    容器要配置 HairpinMode=true 就可以自己访问自己
    ihciah
        4
    ihciah  
       2019-07-23 18:58:48 +08:00
    碰到过这个问题,开 hairpin 就行了
    Hopetree
        5
    Hopetree  
    OP
       2019-07-23 23:09:24 +08:00
    @smallSoda
    @ihciah
    请问我用的 docker-compose 启动容器是要设置什么参数?我查了半天没查到,我自己设置 HairpinMode: true 报错了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5346 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:47 · PVG 16:47 · LAX 00:47 · JFK 03:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.