首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python从容器重定向到容器

python从容器重定向到容器
EN

Stack Overflow用户
提问于 2020-01-19 21:51:19
回答 1查看 266关注 0票数 3

我正在使用docker-compose版本1.25.0,我有2个容器

api -使用python脚本和flask

apach -一些gui

我希望当我收到对api /test的curl请求时,它会重定向到每个容器gui internaly,这是api容器中的python代码:

代码语言:javascript
复制
@app.route('/test')
def test():
    return redirect('apach:4822/#/myapp', code=302)

如果我使用这段代码到我的主机外部return redirect('10.X.X.X:4822/#/myapp', code=302),它可以工作,但我希望重定向在内部容器之间,重定向不是这样工作的。

我试图从api容器对apach:4822/#/myapp执行curl,我确实看到它通过apach容器,但在我的python代码中没有,我得到代码302,页面不存在。

我怎么才能让它工作呢?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-19 21:58:46

redirect('apach:4822/#/myapp', code=302)不工作的原因是名称apach只能在由docker-compose设置的docker网络内解析。

Flask正在向您的浏览器发送HTTP302代码,其中的Location标头设置为apach:4822/#/myapp。在运行浏览器的计算机上,无法解析apach。因此,您只需要使用外部可解析的IP。

由于您有多个想要向外部公开的服务,因此应该考虑设置一个反向代理服务器,如nginx。您可以将nginx作为容器本身运行。您可以使用nginx在不同的路由上公开您的服务。例如,您的api服务可以在/api/路径上公开,而apach容器可以在/myapp路径上公开。用户将连接到nginx服务器,nginx将根据所请求的URL将请求路由到适当的后端服务。当用户连接到/api/test时,您可以使用redirect('/myapp', code=302)重定向到/myapp。然后,nginx会将请求路由到apach服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59810646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档