当前位置: 首页 > 知识库问答 >
问题:

当我设置DEBUG=False时,Django使用[docker,nginx,Django,gunicorn]给我400个错误的请求am

秦宏盛
2023-03-14

我正在尝试使用docker、Nginx和Gunicorn为Django定义一个生产环境,当debug=True时,它可以正常工作,如果我将debug=False,则问题从这里开始会给我错误的请求(400)我的Nginx文件,如下所示:

upstream API {
     server backend-stack:8000;
}
server {

  listen 80;
  server_name localhost;


  location / {
    proxy_set_header Host $host;
    proxy_pass http://api;
    proxy_set_header X-Forwarded-Host $server_name;
    proxy_set_header X-Real-IP $remote_addr;
  }
  location /static/ {
    alias /backend/static/;
  }
  location /media/ {
    alias /backend/media/;
  }
}

设置中的my allowed_hosts。py公司

if env.get("ALLOWED_HOSTS"):
    ALLOWED_HOSTS = env.get("ALLOWED_HOSTS")

我的gunicorn从入口点执行命令。sh文件:

gunicorn core.wsgi:application --bind 0.0.0.0:8000

这是我在docker compose中的nginx容器:

nginx:
container_name: nginx-stack
build: ./nginx
restart: always
volumes:
  - ./nginx/config:/etc/nginx/conf.d
  - ./nginx/log:/var/log/nginx
  - static_volume:/app_backend/static
  - media_volume:/app_backend/media
ports:
  - 80:80
  - 443:443
depends_on:
  - backend
networks:
  - app-network

my allowed_hosts值:

ALLOWED_HOSTS = ['localhost', '127.0.0.1', '0.0.0.0', '*']

最终访问nginx的日志文件:

192.168.144.1 - - [12/Jun/2021:15:18:02 +0000] "GET / HTTP/1.1" 400 154 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36" "-"

共有1个答案

益英逸
2023-03-14

好的,我做到了。问题发生了,因为在我创建了一个新页面并将其设置为主页后,我还没有创建任何视图或任何带有URL的页面。

 类似资料:
  • 问题内容: 我是django-1.6的新手。当我使用运行django服务器时,它运行良好。但是,当我改变DEBUG到False在设置文件,然后在服务器停止,并让在命令提示符下以下错误: 更改为之后,在浏览器中出现错误: 是否可以在没有调试模式的情况下运行Django? 问题答案: 该ALLOWED_HOSTS列表应包含标准主机名,而不是 URL。省略端口和协议。如果你使用127.0.0.1,我也将

  • 我是django-1.6的新手。当我使用运行django服务器时,它运行得非常好。但是,当我在设置文件中将更改为时,服务器停止运行,并在命令提示下出现以下错误: 我将更改为,在浏览器中我得到错误信息: 是否可以在没有调试模式的情况下运行Django?

  • 我正在Docker容器中运行我的Django应用程序,其中nginx作为Web服务器,uWSGI作为应用程序服务器。一切都部署在AWS Elastic Beanstalk上。当我设置DEBUG=False时,所有的请求都会导致错误的请求(400)。我尝试了两个和,但仍然出现相同的错误。我通过检查日志来验证请求是否到达uWSGI。uWSGI日志包含以下内容: 我试过很多答案,但都不走运。我试过这个答

  • 在尝试部署我使用django开发服务器开发的博客时收到400错误后,我开始了一个新的测试项目(使用start project,不做其他任何事情——只是在这里和那里进行一点配置)-尽可能少,以保持尽可能简单。 当我执行“manage.py runserver”时,它会显示一个页面,说我看到了这个,因为我的设置中有“DEBUG=True”。 到现在为止,一直都还不错。没有错误。 但是如果我使用uWSG

  • 我正在尝试使用Django、nginx和Gunicorn运行我的服务器。在开发服务器上,一切都很顺利。但是在正式服上,Gunicorn总是返回一个错误的请求(400)。 我知道我需要设置我的变量,我做到了。我尝试了正确的域、星号,甚至将DEBUG设置为True。但是,它始终是错误的请求(400)。 这是我的nginx配置: 我的文件: 文件(缩短): 我以以下方式启动gunicorn(使用virt

  • 当我的DEBUG=False时显示“错误:-1”,当我的DEBUG=True时显示“错误:-2”。 我将使用python 3.7.7和django 3.0.4。 我的设置。py文件是:- 这是“错误:1”。。。。[调试=False时] 这是“错误:-2”。。。[调试=True时] 但是在'DEBUG=True'的时候,我的管理页面是打开的,但它在终端中给出了下面的错误。 当我试图在浏览器中打开“/