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



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

一切似乎都在运行,除了当我转到 domain.com 时,我的网站没有加载。只有当我转到 domain:5555(其中 flask 设置为运行)时,我才能访问我的站点。

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

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

如果你按照帖子中所述进行了配置,那么你需要替换这个

proxy_pass http://127.0.0.1:8000;

有了这个

proxy_pass http://127.0.0.1:5555;

不是我见过的最好的nginx配置,它使用"if"和If Is Evil,当我有空闲分钟时,我会为您重写此配置,只需确保它在此更改后首先可以正常工作,不要忘记运行

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;
}

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

运行

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

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

相关内容

最新更新