Nginx + Gunicorn + Flask:如何找出真正的基本URL

时间:2015-02-04 16:50:03

标签: python nginx dns flask gunicorn

我有this tutorial中描述的Ngnix / Gunicorn / Flask设置。在我的Python / Flask代码中,我需要确定请求发送到哪个域/主机。因此,如果请求是http://example.com/myapp,我需要能够找到" example.com"在处理请求时动态地动态,因此我可以将其包含在响应中。

我应该能够为新域添加DNS记录以指向同一服务器,并且仍然能够在Python代码中找到新域,而无需更改服务器本身的任何内容。我已经尝试了各种常规方法来确定基本URL,例如request.url_root,但它们只显示了本地代理地址(127.0.0.1:8000)。在这种情况下使用相对路径不是一种选择,因为我实现的协议需要响应中的绝对URL路径。

对此有任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:3)

我认为您应该在flask配置中定义SERVER_NAME变量:http://flask.pocoo.org/docs/0.10/config/

该域名应该可以通过request.url_rootrequest.headers['Host']

访问

答案 1 :(得分:0)

您必须添加

include uwsgi_params;
在你的nginx配置中

uwsgi_params file