Nginx + Gunicorn + Flask =只能通过端口domain.com:5555访问网络应用程序

时间:2014-01-09 05:06:23

标签: nginx flask gunicorn

我完全按照这里的说明操作: http://www.onurguzel.com/how-to-run-flask-applications-with-nginx-using-gunicorn/

除了当我访问domain.com,我的网站无法加载时,一切似乎都在运行。只有当我去域:5555,设置瓶运行时,我才能访问我的网站。

这是因为我的烧瓶是在调试模式下设置的吗?

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5555, debug=True)

2 个答案:

答案 0 :(得分:1)

如果您按照帖子中的描述进行配置,那么您需要替换此

proxy_pass http://127.0.0.1:8000;

用这个

proxy_pass http://127.0.0.1:5555;

不是真正最好的nginx配置我看过它使用'if'和If Is Evil,当我有一个备用min时,我会为你重写这个配置,只要确保它在这个改变之后有效,别忘了跑

sudo service nginx reload

<小时/> 编辑:抱歉,我忘记了这一点,这是我替换if部分

location / {
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    try_files $uri @proxy;
}
location @proxy {
        proxy_pass http://127.0.0.1:8000;
}

你可以尝试并告诉我它是怎么回事。

答案 1 :(得分:1)

运行您正在使用的应用程序的app.run()方法不使用gunicorn或nginx,它正在运行Flask的开发Web服务器。

返回您引用的页面,重新阅读有关使用gunicorn启动应用程序的部分。一旦你使用gunicorn运行应用程序,你可以通过打开http://127.0.0.1:8000(从服务器而不是从外部)来测试,然后使用他们提供的配置启动nginx,这将在你的域中公开应用程序