django+nginx+gunicornでBad Request(400)

NO IMAGE

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;」が重要になります。