2014-10-18 66 views
0

我想用nginx和gunicorn部署我的django 1.6版本項目。在我的服務器,我將自己的項目nginx的文件:django運行gunicorn和nginx:400不好的請求

error_log /var/log/nginx/myproject-error.log; 
access_log /var/log/nginx/myproject-access.log; 
server { 
     listen 80; 
     server_name <domain_name>; 
     root <path_to_my_root_project>; 

     location /static/ { 
      root <path_to_my_root_project>; 
      expires max; 
      add_header Pragma public; 
      add_header Cache-Control "public, must-revalidate, proxy-revalidate"; 
     } 

     location/{ 
      proxy_pass_header Server; 
      proxy_set_header Host $http_host; 
      proxy_redirect off; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Schema $scheme; 
      proxy_connect_timeout 10; 
      proxy_read_timeout 10; 

      proxy_pass http://localhost:8333/; 
     } 
     error_page 500 502 503 504 /static/50x.html; 
} 

在我的Django的設置文件,我設置靜態路徑:

# Static 
STATIC_ROOT = BASE_DIR + '/static' 
STATIC_URL = '/static/' 

而且我運行gunicorn如下:

$ gunicorn_django -b localhost:8333 
!!! 
!!! WARNING: This command is deprecated. 
!!! 
!!!  You should now run your application with the WSGI interface 
!!!  installed with your project. Ex.: 
!!! 
!!!   gunicorn myproject.wsgi:application 
!!! 
!!!  See https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/gunicorn/ 
!!!  for more info. 
!!! 

所以當我在我的服務器curl localhost上運行一個捲曲時,我得到<h1>Bad Request (400)</h1>並且日誌沒有多說127.0.0.1 - - [18/Oct/2014:14:38:57 +0200] "GET/HTTP/1.1" 400 37 "-" "curl/7.26.0"

gunicorn停留不動,好像沒有請求發送給它。

任何想法?

UPDATE: 我運行gunicor:gunicorn myproject.wsgi -b localhost:8333curl localhost返回我的靜態/ 50x.html錯誤頁面。我在nginx日誌中得到了這個:

2014/10/18 15:06:31 [error] 16037#0: *32 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: servername.local.fr, request: "GET/HTTP/1.1", upstream: "http://127.0.0.1:8333/", host: "localhost" 

回答

1

這一個告訴你該怎麼做。

!!!  You should now run your application with the WSGI interface 
!!!  installed with your project. Ex.: 
!!! 
!!!   gunicorn myproject.wsgi:application 

NGINX工作正常,gunicorn只是沒有收到您的請求。

只是爲了你的項目目錄,並在此描述與適當的參數運行gunicorn:http://docs.gunicorn.org/en/latest/run.html#gunicorn-django

+0

'警告:該命令是deprecated.'我以爲這只是depreacated因而起作用。否則,它會是和錯誤消息 – smarber 2014-10-18 12:44:43

+1

@smarber你應該嘗試使用siply'gunicorn'來運行這個。 – 2014-10-18 12:47:16

+0

我更新了我的問題 – smarber 2014-10-18 13:04:10