错误请求400:nginx/gunicorn

 Sunflower_琪琪 发布于 2023-01-30 20:43

我已经按照本教程进行了操作:http://blog.wercker.com/2013/11/25/django-16-part3.html我现在正试图让它在Vagrant本地工作.我不是想使用Wercker.

安装完所有内容后,我尝试访问该网站,但每次都收到错误请求(400)错误.我不知道这是由于nginx还是gunicorn中的问题.

它们都有一个日志条目,所以至少我知道请求一直通过gunicorn并且不会在nginx级别停止.

问题在哪里?Gunicorn?nginx的?

这是gunicorn和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"

Andrii Zarub.. 66

我有同样的问题,并添加ALLOWED_HOSTS = ("yourdomain.com",)到设置修复它.

更新:还有其他几种可能性:

    Nginx(或您使用的任何Web服务器)不会将$ host变量传递给应用程序

    主机包含下划线

详情请见:https://blog.anvileight.com/posts/how-to-fix-bad-request-400-in-django/

2 个回答
  • 由于我遇到了同样的问题(尝试与流浪汉分享时有400个错误代码),我偶然发现了这个问题.答案和评论是正确的,因为显而易见的解决方案是设置ALLOWED_HOSTS列表,但我已经正确设置它(我想).

    我不能代表nginx,因为我在apache2上运行它,但是这就解决了这个问题:

      查看ALLOWED_HOSTS文档,找出最适合您案例的文档.

      使用vagrant,您可能会发现接受所有vagrantshare.com子域很有用,所以只需将'.vagrantshare.com'(注意点)添加到ALLOWED_HOSTS列表中即可.

      不确定是否真的有必要,但我更改了wsgi.py文件的修改日期

      touch wsgi.py
      

      当我使用apache2时,我需要重启服务.

      sudo service apache2 restart
      

    然后它奏效了.

    2023-01-30 20:49 回答
  • 我有同样的问题,并添加ALLOWED_HOSTS = ("yourdomain.com",)到设置修复它.

    更新:还有其他几种可能性:

      Nginx(或您使用的任何Web服务器)不会将$ host变量传递给应用程序

      主机包含下划线

    详情请见:https://blog.anvileight.com/posts/how-to-fix-bad-request-400-in-django/

    2023-01-30 20:49 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有