当我使用 Nginx 作为带有 Gunicorn 套接字的反向代理时,Flask 应用程序收到 404 Not Found

当我使用 Nginx 作为带有 Gunicorn 套接字的反向代理时,Flask 应用程序收到 404 Not Found

我一直在关注教程这里将我自己的 flask 应用程序部署到我的 Ubuntu 16 服务器。我用作Nginx反向代理将请求传递到gunicorn套接字。以防万一有人想知道ufw是否允许Nginx All

这是我迄今为止尝试过的:

  1. Flask通过在端口上本地运行该应用程序来检查该应用程序是否在本地服务器上运行5000(运行良好)
  2. 我通过运行检查了 gunicorn 是否能够提供服务:(gunicorn --bind 0.0.0.0:5000 wsgi:app运行正常)
  3. 我制作了/etc/systemd/system/myapp_service.service以下文件
[Unit]
Description=Gunicorn instance to serve my app
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/var/www/app/flaskapp
Environment="PATH=/home/ubuntu/.virtualenvs/app_env/bin"
ExecStart=/home/ubuntu/.virtualenvs/app_env/bin/gunicorn --workers 3 --bind unix
:/var/www/app/flaskapp/myapp.sock -m 002 wsgi:app
[Install]
WantedBy=multi-user.target
  1. 我创建了一个Nginx配置文件sites-available如下:
server {
    listen 80;
    server_name app.mydomain.com;

    location / {
        include proxy_params;
        proxy_pass http://unix:/var/www/app/flaskapp/myapp.sock;
    }
}
  1. 我创建了一个符号链接sites-enabled,运行 sudo nginx -t
  2. 重新启动Nginxmyapp_servicesystemctl
  3. 当我去时,http://app.mydomain.com它只会显示那个大大的“欢迎使用 Nginx”页面而不是我的应用程序。

我还需要配置什么吗?

答案1

可能这个是错的:

代理密码http://unix:/var/www/app/flaskapp/myapp.sock;

尝试仅保留这部分:

proxy_pass unix:/var/www/app/flaskapp/myapp.sock;

相关内容