如何在自定义域上使用gunicorn通过nginx为flask应用程序提供服务?
我正在尝试使用以下说明通过gunicorn在nginx上运行flask应用程序: 根据那个教程,我有两条A记录——一条空白记录和一条指向ip地址的域名上的www记录 我有一个flask应用程序,当我用gunicorn运行它时——绑定0.0.0.0:5000 wsgi:app例如,我可以在:5000上看到它 现在,当我尝试将gunicorn设置为我自己的自定义域上的服务时,问题来了 这是my/etc/systemd/system/myproject.service:如何在自定义域上使用gunicorn通过nginx为flask应用程序提供服务?,nginx,dns,Nginx,Dns,我正在尝试使用以下说明通过gunicorn在nginx上运行flask应用程序: 根据那个教程,我有两条A记录——一条空白记录和一条指向ip地址的域名上的www记录 我有一个flask应用程序,当我用gunicorn运行它时——绑定0.0.0.0:5000 wsgi:app例如,我可以在:5000上看到它 现在,当我尝试将gunicorn设置为我自己的自定义域上的服务时,问题来了 这是my/etc/systemd/system/myproject.service: [Unit] Descript
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/srv/myproject
Environment="PATH=/myproject/myprojectenv/bin"
ExecStart=/srv/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target
我用sudo systemctl start myproject启动它
server {
listen 80;
server_name sweatt.app www.sweatt.app;
location / {
include proxy_params;
proxy_pass http://unix:/srv/myproject/myproject.sock;
}
}
然后在/etc/nginx/sites available/myproject
server {
listen 80;
server_name sweatt.app www.sweatt.app;
location / {
include proxy_params;
proxy_pass http://unix:/srv/myproject/myproject.sock;
}
}
这对我来说是个棘手的问题,因为当我将sweatt.app切换到我的ip时,ip成功地为flask应用服务。但是,当我使用实际的域-sweatt.app和www.sweatt.app时,它提供:
当我尝试旧的ip时,它实际上给出了“欢迎使用nginx”登录页,好像该ip是允许的,但它只是没有通过gunicorn为flask应用程序提供服务
所以我有几个问题
在/etc/nginx/conf.d/处创建一个包含以下内容的.conf文件
server {
listen 80;
server_name www.yourdomain.com;
access_log /..../access.log;
error_log /..../error.log;
location / {
proxy_pass http://127.0.0.1:5000/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
你在说什么?你是说我应该用这个站点可用文件来代替吗?这个文件代替了/etc/nginx/sites可用吗?我也保留这个吗?我刚刚在/etc/nginx/conf.d/文件夹中创建了一个.conf文件。我不记得为什么了,但使用可用的网站对我不起作用。修改.conf文件后,必须使用/etc/init.d/nginx reload重新加载更改