我想用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:8333
的curl 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"
'警告:該命令是deprecated.'我以爲這只是depreacated因而起作用。否則,它會是和錯誤消息 – smarber 2014-10-18 12:44:43
@smarber你應該嘗試使用siply'gunicorn'來運行這個。 – 2014-10-18 12:47:16
我更新了我的問題 – smarber 2014-10-18 13:04:10