django+nginx+gunicornでBad Request(400)
- 2015.02.14
- Django
django + nginx + gunicornの環境で、サーバ構築しているのですが、djangoのDEBUG=Falseにした途端、Bad Request(400)が発生しました。
原因はALLOWED_HOSTSに指定がないサーバからのアクセスのためなのですが、[‘*’]を追加してもダメでした。
最終的な原因としては、nginx→djangoの箇所で、適切な名前が渡っていないようです。(でも、なぜ * でだめなのか、よくわからない。。。)
参考までに設定は、
server { listen 80; server_name hoge.jp; access_log /var/log/nginx/hoge/access.log; location / { proxy_pass http://django_server; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Real-IP $remote_addr; } }
とするべきで、9行目の「proxy_set_header Host $http_host;」が重要になります。
-
前の記事
Djangoの読み方 2015.02.11
-
次の記事
DjangoにNewRelicを入れたが、ログが出ない 2015.02.27