【发布时间】:2014-02-19 09:06:17
【问题描述】:
我已遵循本教程:http://blog.wercker.com/2013/11/25/django-16-part3.html,我现在只是想让它在本地与 Vagrant 一起工作。我不想使用 Wercker。
安装完所有内容后,我尝试访问该网站,但每次都收到 Bad Request (400) 错误。不知道是 nginx 还是 gunicorn 的问题。
他们都有一个日志条目,所以至少我知道请求一直通过 gunicorn 并且没有在 nginx 级别停止。
问题出在哪里?独角兽? 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"
【问题讨论】:
-
您是否在 settings.py 中设置了 ALLOWED_HOSTS? docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
-
嗯,我想我做到了。我使用以下命令运行剧本:
ansible-playbook site.yml --extra-vars "source_location=$REMOTE_SOURCE_DIR hostname=$HOSTNAME" -u root其中$HOSTNAME是127.0.0.1。然后在来自 tuto 的脚本上,通过export DJANGO_ALLOWED_HOST={{hostname}}和ALLOWED_HOSTS = [os.environ.get('DJANGO_ALLOWED_HOST', '127.0.0.1'),]设置变量 -
好吧,你是对的,它是
DJANGO_ALLOWED_HOST变量。我在设置文件中设置了ALLOWED_HOSTS = ['*'],它起作用了。但是我不明白在使用本地流浪者时应该赋予什么价值......?127.0.0.1不起作用...非常感谢。 -
域名中的下划线也会触发这个错误。不适用于 Django 1.3 和 1.4,但至少适用于 1.6.1。请参阅 code.djangoproject.com/ticket/20264 为什么这种行为是正确的。