Flask Proxy解析url_for

时间:2016-12-07 12:27:25

标签: python nginx flask

我有以下设置:

  • 主服务器
    nginx转发"https://example.com/machine1/*" -> "http://machine1/*"
  • MACHINE1
    ngnix + uwsgi +烧瓶安装在/,例如/foobar

这意味着,https://example.com/machine1/foobar会将 Machine1 命名为/foobar。 我在变量/machine1中有加载点NGINX_MOUNT_URL

问题是,url_for无法解决问题。

我试过

app.config["APPLICATION_ROOT"] = NGINX_MOUNT_URL   # = "/machine1"

但似乎只适用于cookie网址。

有一个简单的观点:

@app.route("/foobar")
def web_foobar():
    from flask import url_for
    return "The URL for this page is {}".format(url_for("web_foobar"))
# end def

因此,浏览https://example.com/machine1/foobar主服务器)将代理到显示http://machine1/foobar的{​​{1}}( Machine1 )。 我需要它The URL for this page is /foobar,以便在模板中链接起作用。

我尝试了https://stackoverflow.com/a/18967744/3423324中提供的解决方案,但最终我必须浏览/machine1/foobar以获取页面https://example.com/machine1/machine1/foobar

如何让/foobar了解flask.url_for

1 个答案:

答案 0 :(得分:-1)

查看How do I get the different parts of a Flask request's url?

pathscript_root请求变量看起来正确无误。