![](/img/trans.png)
[英]Getting 502 Bad Gateway error and sending a email with django, nginx, gunicorn
[英]Bad Gateway 502 Error with Django, Gunicorn and Nginx
我正在尝试使用Gunicorn和Nginx在Django上运行项目。 在DigitalOcean OneClick安装映像上,我的项目在没有virtualenv和全局Django安装的情况下都能正常运行。 但是,当我为不同的Django版本创建虚拟环境时,我无法使其正常工作。 因此,请有人为我提供一些使用虚拟环境在Ubuntu上托管多站点的帮助。 我的Gunicorn虚拟环境设置如下:
description "Gunicorn daemon for Django project"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]
# If the process quits unexpectadly trigger a respawn
respawn
setuid django
setgid django
chdir /home/django
exec gunicorn \
--name=myproject2\
--pythonpath=myproject2\
--bind=127.0.0.1:9500 \
--config /etc/gunicorn.d/gunicorn.py \
myproject2.wsgi:application
我的第二个项目的Nginx设置是:
upstream ashyanaa_server {
server 127.0.0.1:9500 fail_timeout=0;
}
server {
listen 80;
listen [::]:80;
root /home/django/myproject2;
index index.html index.htm;
client_max_body_size 4G;
server_name www.myproject2.com;
keepalive_timeout 5;
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2|woff|ttf)$ {
expires 365d;
}
# Your Django project's media files - amend as required
location /media {
alias /home/django/myproject2/media/;
}
# your Django project's static files - amend as required
location static/static-only {
alias /home/django/myproject2/static-only/;
}
# Django static images
location /static/myproject2/images {
alias /home/django/myproject2/static-only/images/;
}
# Proxy the static assests for the Django Admin panel
location /static/admin {
alias /usr/lib/python2.7/dist-packages/django/contrib/admin/static/admin;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://myproject2_server;
}
我的第一个项目设置与第二个项目设置唯一不同的是,我为第二个项目使用虚拟环境,并且显然我必须为新项目使用不同的端口。
“错误的网关”表示Nginx无法连接Gunicorn进程。
curl http://127.0.0.1:9500/
会发生什么? 您收到Gunicorn的回应了吗? 这是由于缺乏对Nginx的了解。 我在Nginx中添加了www.mydomain.com,但是我习惯在浏览器中输入没有www的域名。 我只是添加了“ mydomain.com”和“ www.mydomain.com”。 因此,现在两者都可以正常工作。 如果所有设置正确,但仍然得到502,供其他用户使用,这意味着您要查找的地址未在Nginx中列出。 这可能是原因之一。 谢谢你们的帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.