尝试用 nginx 和 gunicorn 设置烧瓶

Trying to set up flask with nginx and gunicorn

我遵循了一个简单的指南,并试图展示我的烧瓶应用程序,但它不会展示。我 运行 在 ubuntu 服务器上通过 ssh 进行所有操作。

在 /var/www/application/

中安装我的烧瓶应用程序和 wsgi.py

我的 nginx 配置是:

server {
        listen 80;
        server_name application;
 
        access_log /var/log/nginx/application.access.log;
        error_log /var/log/nginx/appliation.error.log;
 
        location / {
                include proxy_params;
                proxy_pass http://unix:/var/www/application/application.sock;
        }
}

我已将文件符号链接到 /etc/nginx/sites-enabled/

然后这是我的 gunicorn 应用程序配置 位于:/etc/systemd/system/application.service

[Unit]
Description=application.service - A Flask application run with Gunicorn.
After=network.target
 
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/application/
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.sock wsgi:app
 
[Install]
WantedBy=multi-user.target

已检查所有进程 运行,系统状态正常,但当我尝试卷曲时

http://application

我一无所获?

我的app.py

from flask import Flask
 
app = Flask(__name__)
@app.route("/")
def home():
    return "<h1>Nginx & Gunicorn</h1>"

wsgi.py

from main import app
 
if __name__ == "__main__":
    app.run(debug=True)

我在这里缺少什么,如何让它工作?

ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.sock wsgi:app

问题是路径/var/www/application.sock,应该是:/var/www/application/application.sock

您仍然可以使用以下命令查看服务状态: sudo systemctl status <service_name>

要了解服务文件中指定的命令是否正确,或者应用程序是否启动有问题,请尝试直接从命令行启动它:

cd /var/www/application/ && /usr/bin/gunicorn --workers 3 --bind unix:/var/www/application/application.sock wsgi:app