Hopetree
V2EX  ›  Django

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

  •  
  •   Hopetree ·
    Hopetree · Jul 23, 2019 · 4272 views
    This topic created in 2524 days ago, the information mentioned may be changed or developed.

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

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

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

    5 replies    2019-07-23 23:09:24 +08:00
    NaVient
        1
    NaVient  
       Jul 23, 2019
    容器内部的请求最好走容器内部的地址,不要走到外部去
    Hopetree
        2
    Hopetree  
    OP
       Jul 23, 2019
    @NaVient :cry: 这个必须往外走啊,因为这个不是一个接口请求数据的操作,而是一个爬虫,就是爬任何一个网站,去提取一个简单的信息,所以肯定是往外走的,问题就是我搞不懂为啥不能访问自己
    smallSoda
        3
    smallSoda  
       Jul 23, 2019
    容器要配置 HairpinMode=true 就可以自己访问自己
    ihciah
        4
    ihciah  
       Jul 23, 2019
    碰到过这个问题,开 hairpin 就行了
    Hopetree
        5
    Hopetree  
    OP
       Jul 23, 2019
    @smallSoda
    @ihciah
    请问我用的 docker-compose 启动容器是要设置什么参数?我查了半天没查到,我自己设置 HairpinMode: true 报错了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2171 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 00:39 · PVG 08:39 · LAX 17:39 · JFK 20:39
    ♥ Do have faith in what you're doing.