Django DEBUG = False导致所有请求出现400错误

时间:2017-08-01 03:13:21

标签: django nginx elastic-beanstalk uwsgi

我在一个Docker容器中运行我的Django应用程序,其中nginx作为web服务器,uWSGI作为app服务器。所有内容都部署在AWS Elastic Beanstalk上。当我设置DEBUG=False时,所有请求都会生成Bad Request (400)。我已经尝试了ALLOWED_HOSTS='*'ALLOWED_HOSTS=['*'],但我仍然遇到同样的错误。我通过检查日志验证了请求来到uWSGI。 uWSGI日志包含:

[pid: 33|app: 0|req: 4/4] 172.17.0.1 () {46 vars in 855 bytes} [Tue Aug  1 02:54:17 2017] GET / => generated 26 bytes in 26 msecs (HTTP/1.1 400) 1 headers in 53 bytes (1 switches on core 0)

我尝试了很多答案,但没有运气。我试过this answer,但我仍然遇到同样的错误。还有什么可能导致这个吗?

这个问题与this question不同,因为正如我所提到的,将ALLOWED_HOSTS设置为通配符并不适用于我。同样的问题,我也试过this answer,但我仍然得到同样的错误。

1 个答案:

答案 0 :(得分:0)

问题是我的URL有一个下划线,而Django不允许在URL中的任何地方加下划线。我有www._test_.example.comwww._test.example.comwww.a_test.example.com也不会工作。 Underscores should be valid characters in URLs