不正なリクエスト 400: nginx / gunicorn 質問する

不正なリクエスト 400: nginx / gunicorn 質問する

私はこのチュートリアルに従いました:http://blog.wercker.com/2013/11/25/django-16-part3.html今のところ、Vagrant を使用してローカルで動作するようにしようとしているだけです。Wercker を使用するつもりはありません。

すべてインストールした後、ウェブサイトにアクセスしようとすると、不正なリクエスト (400)毎回エラーが発生します。これが nginx の問題によるものか gunicorn の問題によるものかはわかりません。

どちらにもログ エントリがあるため、少なくともリクエストが gunicorn を通過し、nginx レベルで停止されないことがわかります。

問題はどこにありますか? Gunicorn ですか? nginx ですか?

以下は gunicorn と nginx のログです。

ファビコンが欠落しているのはわかりますが、それだけでページが表示されなくなることはないはずですよね?

ガニコーン:

 >>> cat /var/local/sites/hellocities/run/gunicorn.error.log
10.0.0.1 - - [28/Jan/2014:07:05:16] "GET / HTTP/1.0" 400 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"
10.0.0.1 - - [28/Jan/2014:07:09:43] "GET / HTTP/1.0" 400 - "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"

nginx: いいえ

>>> cat /var/log/nginx/hellocities-access.log
10.0.0.1 - - [28/Jan/2014:07:05:16 +0000] "GET / HTTP/1.1" 400 37 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"
10.0.0.1 - - [28/Jan/2014:07:05:20 +0000] "GET /favicon.ico HTTP/1.1" 404 200 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"
10.0.0.1 - - [28/Jan/2014:07:09:43 +0000] "GET / HTTP/1.1" 400 37 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"
10.0.0.1 - - [28/Jan/2014:07:09:44 +0000] "GET /favicon.ico HTTP/1.1" 404 200 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36"

>>> cat /var/log/nginx/hellocities-error.log
2014/01/28 07:05:20 [error] 13886#0: *1 open() "/var/local/sites/hellocities/static/favicon.ico" failed (2: No such file or directory), client: 10.0.0.1, server: _, request: "GET /favicon.ico HTTP/1.1", host: "10.0.0.200"
2014/01/28 07:09:44 [error] 13886#0: *3 open() "/var/local/sites/hellocities/static/favicon.ico" failed (2: No such file or directory), client: 10.0.0.1, server: _, request: "GET /favicon.ico HTTP/1.1", host: "10.0.0.200"

ベストアンサー1

私も同じ問題を抱えていましたが、ALLOWED_HOSTS = ("yourdomain.com",)設定を追加することで解決しました。

更新: 他にもいくつか可能性があります:

  1. Nginx(または使用するWebサーバー)は$host変数をアプリに渡さない
  2. ホストにアンダースコアが含まれています

詳細を見る:https://blog.anvileight.com/posts/how-to-fix-bad-request-400-in-django/

おすすめ記事