J'ai suivi ce tutoriel: http://blog.wercker.com/2013/11/25/Django-16-part3.html et j'essaie juste de le faire fonctionner localement avec Vagrant pour l'instant . Je n'essaie pas d'utiliser Wercker.
Une fois que tout est installé, j'essaie d'accéder au site Web mais j'obtiens à chaque fois une erreur Bad Request (400) . Je ne sais pas si cela est dû à un problème en nginx ou en gunicorn.
Ils ont tous les deux une entrée de journal, donc au moins je sais que la demande va jusqu'au bout de gunicorn et n'est pas arrêtée au niveau nginx.
Où se situe le problème? Gunicorn? nginx?
Voici les journaux de gunicorn et nginx.
Je vois que le favicon est manquant mais cela ne devrait pas empêcher la page de s'afficher à droite?
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"
J'ai eu le même problème et l'ajout de ALLOWED_HOSTS = ("yourdomain.com",)
aux paramètres l'a corrigé.
MISE À JOUR: il y a quelques autres possibilités:
Voir les détails: https://blog.anvileight.com/posts/how-to-fix-bad-request-400-in-Django/
Comme je rencontrais le même problème (code d'erreur 400 en essayant de partager avec le partage vagabond), je tombe sur cette question. La réponse et les commentaires sont corrects, car la solution évidente consiste à définir ALLOWED_HOSTS
liste, mais je le définissais déjà correctement (je pensais).
Je ne peux pas parler pour nginx car j'exécute ceci sur Apache2, mais voici ce qui a résolu le problème:
Jetez un oeil à la ALLOWED_HOSTS
doc pour trouver ce qui convient le mieux à votre cas.
Avec vagrant, il peut être utile d'accepter tous les sous-domaines vagrantshare.com , il suffit donc d'ajouter '.vagrantshare.com'
(remarquez le point) au ALLOWED_HOSTS
liste.
Je ne sais pas si c'est vraiment nécessaire, mais j'ai changé la date modifiée du wsgi.py
fichier
touch wsgi.py
Comme j'utilise Apache2, j'ai dû redémarrer le service.
Sudo service Apache2 restart
Et puis ça a marché.