python从容器重定向到容器

巴彻·雷杰夫

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

api-使用python脚本和flask

apach-一些gui

我想当我收到对api的curl请求时/test,它将重定向到apach容器gui内部,这是api容器中的python代码:

@app.route('/test')
def test():
    return redirect('apach:4822/#/myapp', code=302)

如果我在主机外部使用此代码return redirect('10.X.X.X:4822/#/myapp', code=302)可以正常工作,但我希望重定向在容器之间进行内部,则重定向无法以这种方式工作。

我试图apach:4822/#/myapp从api容器卷曲到,我确实看到它通过了apach容器,但是使用我的python代码却没有,我得到了代码302,并且页面不存在。

我该如何运作?谢谢。

沙申克五世

之所以redirect('apach:4822/#/myapp', code=302)不起作用,是因为该名称apach仅在docker-compose设置的docker网络内部可解析。

Flask正在将设置Location标头的HTTP 302代码发送apach:4822/#/myapp到您的浏览器。在运行浏览器的计算机上,apach无法解决。因此,您只需要使用一个外部可解析的IP。

由于您要向外界公开多种服务,因此您应该考虑设置像nginx这样的反向代理服务器您可以nginx本身作为容器运行您可以使用nginx在不同的路由上公开您的服务。例如,您的api服务可以在/api/path处公开,apach容器可以在/myapppath处公开用户将连接到nginx服务器,并且nginx将根据请求的URL将请求路由到适当的后端服务。当用户连接到/api/test,你可以重定向到/myappredirect('/myapp', code=302)然后,nginx会将请求路由到apach服务。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章