Подтвердить что ты не робот

Плохой запрос 400: nginx/gunicorn

Я последовал этому руководству: http://blog.wercker.com/2013/11/25/django-16-part3.html, и я просто пытаюсь заставить его работать локально с Vagrant на данный момент. Я не пытаюсь использовать Wercker.

После того, как все установлено, я пытаюсь получить доступ к веб-сайту, но каждый раз я получаю ошибку Плохой запрос (400). Я не знаю, связано ли это с проблемой в nginx или в пушких.

У них обоих есть запись в журнале, так что, по крайней мере, я знаю, что запрос проходит весь путь через пушки и не останавливается на уровне nginx.

Где находится проблема? Gunicorn? Nginx?

Вот журналы о стрельбе и nginx.

Я вижу, что favicon отсутствует, но только не следует останавливать отображение страницы правильно?

Gunicorn:

 >>> 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"
4b9b3361

Ответ 1

У меня была такая же проблема и добавление ALLOWED_HOSTS = ("yourdomain.com",) к настройкам исправлено.

Ответ 2

Поскольку у меня была одна и та же проблема (400 код ошибки при попытке поделиться с бродягой), я наткнулся на этот вопрос. Ответ и комментарии правильные, так как очевидным решением является установка списка ALLOWED_HOSTS, но я уже правильно его настраивал (я думал).

Я не могу говорить за nginx, поскольку я запускаю это на apache2, но вот что решило проблему:

  • Взгляните на ALLOWED_HOSTS doc, чтобы найти то, что лучше всего подходит для вашего дела.

  • С бродягой вам может быть полезно принять все субдомен vagrantshare.com, поэтому просто добавьте '.vagrantshare.com' (обратите внимание на точку) в список ALLOWED_HOSTS.

  • Не уверен, что это действительно необходимо, но я изменил измененную дату файла wsgi.py

    touch wsgi.py
    
  • Когда я использую apache2, мне нужно перезапустить службу.

    sudo service apache2 restart
    

И потом это сработало.

Ответ 3

В Django 1.8.7 мне пришлось решить две задачи:

  • Сначала добавьте мой домен в список ALLOWED_HOSTS в settings.py как ALLOWED_HOSTS = ["mydomain.com",]
  • Во-вторых, в конце модуля settings.py просто измените ALLOWED_HOSTS = ip_addresses() на ALLOWED_HOSTS += ip_addresses() (отметьте знак +)

Это решило мою проблему