gpt4 book ai didi

python - Nginx、Flask、Gunicorn 502 错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:41:29 25 4
gpt4 key购买 nike

我对 Flask/Nginx/Gunicorn 还是很陌生,因为这只是我使用该组合的第二个站点。我根据 Miguel Grinberg 的 tutorial 创建了一个网站所以我的文件结构与本教程中的完全相同。

在我以前的 Flask 应用程序中,我的应用程序位于一个名为 app.py 的文件中,所以当我使用 Gunicorn 时,我只调用了
gunicorn app:app

现在我的新应用程序被拆分成多个文件,我使用文件 run.py 来启动应用程序,但我不确定现在应该如何调用 Gunicorn。我已经阅读了其他问题和教程,但它们没有用。当我运行 gunicorn run:app 并尝试访问该站点时,出现 502 Bad Gateway 错误。

我认为我的问题更多的是 Gunicorn 而不是 Nginx 或 Flask,因为只要我输入 ./run.py 网站就可以正常运行。无论如何,我在下面包含了我的 Nginx 配置和其他一些文件。非常感谢您的帮助!

文件:run.py

#!flask/bin/python
from app import app
from werkzeug.contrib.fixers import ProxyFix

app.wsgi_app = ProxyFix(app.wsgi_app)
app.run(debug = True, port=8001)

文件:app/views.py

from app import app

@app.route('/')
@app.route('/index')
def index():
posts = Post.query.order_by(Post.id.desc()).all()
return render_template('index.html', posts=posts)

文件:nginx.conf

server {
listen 80;
server_name example.com;

root /var/www/example.com/public_html/app;

access_log /var/www/example.com/logs/access.log;
error_log /var/www/example.com/logs/error.log;

client_max_body_size 2M;

location / {
try_files $uri @gunicorn_proxy;
}

location @gunicorn_proxy {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://127.0.0.1:8001;
}
}

最佳答案

当 gunicorn 导入 app.py 时,开发服务器正在运行。您只希望在直接执行文件时发生这种情况(例如,python app.py)。

#!flask/bin/python
from app import app
from werkzeug.contrib.fixers import ProxyFix

app.wsgi_app = ProxyFix(app.wsgi_app)

if __name__ == '__main__':
# You don't need to set the port here unless you don't want to use 5000 for development.
app.run(debug=True)

完成此更改后,您应该能够使用 gunicorn run:app 运行应用程序。请注意,gunicorn 默认使用端口 8000。如果您希望在备用端口(例如 8001)上运行,则需要使用 gunicorn -b :8001 run:app 进行指定。

关于python - Nginx、Flask、Gunicorn 502 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26211267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com