我一直在关注教程这里将我自己的 flask 应用程序部署到我的 Ubuntu 16 服务器。我用作Nginx
反向代理将请求传递到gunicorn
套接字。以防万一有人想知道ufw
是否允许Nginx All
。
这是我迄今为止尝试过的:
- 我
Flask
通过在端口上本地运行该应用程序来检查该应用程序是否在本地服务器上运行5000
(运行良好) - 我通过运行检查了 gunicorn 是否能够提供服务:(
gunicorn --bind 0.0.0.0:5000 wsgi:app
运行正常) - 我制作了
/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
- 我创建了一个
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;
}
}
- 我创建了一个符号链接
sites-enabled
,运行sudo nginx -t
- 重新启动
Nginx
并myapp_service
systemctl
- 当我去时,
http://app.mydomain.com
它只会显示那个大大的“欢迎使用 Nginx”页面而不是我的应用程序。
我还需要配置什么吗?
答案1
可能这个是错的:
代理密码http://unix:/var/www/app/flaskapp/myapp.sock;
尝试仅保留这部分:
proxy_pass unix:/var/www/app/flaskapp/myapp.sock;