2013-08-03 33 views
3

当我尝试访问我的网站时,我只看到502错误。 这里是我的nginx的配置:关于django + gunicorn + nginx配置的错误网关

upstream pzw_server { 
# server unix:/home/pzw/pzw/run/gunicorn.sock fail_timeout=0; 
    server 127.0.0.1:8000 fail_timeout=0; 
} 

server { 
    listen 80; 
    server_name my_server_ip_addr; 

    client_max_body_size 4G; 

    access_log /home/pzw/pzw/log/nginx-access.log; 
    error_log /home/pzw/pzw/log/nginx-error.log; 

    location /static/ { 
     alias /home/pzw/pzw/static/; 
    } 

    location /media/ { 
      alias /home/pzw/pzw/media/; 
    } 

    location/{ 
      try_files $uri @proxy; 
    } 

    location @proxy { 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 
      proxy_pass http://my_server_ip_addr; 
    } 
} 
我使用的

Gunicorn启动脚本:当我尝试连接到127.0.0.1

2013/08/03 23:26:04 [error] 8582#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: my_ip, server: my_server_ip, request: "GET/HTTP/1.1", upstream: "http://my_server_ip:80/", host: "my_server_ip" 

#!/bin/bash 

NAME='app_name' 
DJANGODIR=/home/pzw/pzw 
SOCKFILE=/home/pzw/pzw/run/gunicorn.sock 
USER=pzw 
GROUP=pzw 
NUM_WORKERS=3 
DJANGO_SETTINGS_MODULE=app_name.settings 
VIRTENVDIR=/home/pzw/.virtualenvs/pzw 


echo "STARTING $NAME" 

cd $DJANGODIR 
source "${VIRTENVDIR}/bin/activate" 
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE 
export PYTHONPATH=$DJANGODIR:$PYTHONPATH 

RUNDIR=$(dirname $SOCKFILE) 
test -d $RUNDIR || mkdir -p $RUNDIR 

exec "${VIRTENVDIR}/bin/gunicorn_django" \ 
    --name $NAME \ 
    --workers $NUM_WORKERS \ 
    --user=$USER --group=$GROUP \ 
    --debug \ 
    --log-level debug #\ 
# --bind=unix:$SOCKFILE 

以下错误Nginx的日志:8000在我的服务器上使用lynx一切似乎都很好。最初我试图使用unix套接字,但由于它不起作用(同样的错误),我切换到TCP。 Gunicorn没有记录与nginx的连接。

回答

2

xaxes,

每当你TEMPLATE_DEBUG设置为False,您还需要让Django知道哪些主机/域来处理请求设置ALLOWED_HOSTS。显然,当ALLOWED_HOSTS只是空列表时,localhost隐含地工作。

我希望这有助于!

+0

通过在应用程序settings.py中添加ALLOWED_HOSTS = ['127.0.0.1']保存我的一天。谢谢 – Charlesliam