2013-08-03 32 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