当我设置 DEBUG=False 时,Django 给了我 400 个错误的请求,我正在使用 [docker、nginx、django、gunicorn]
When I set DEBUG=False Django gives me 400 bad request am using [docker, nginx, django, gunicorn]
我正在尝试使用 docker 和 Nginx 和 Gunicorn 为 Django 定义一个生产环境,当 debug=True 时它工作正常如果我设置 debug=False Issue start here 给我 Bad Request (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/;
}
}
我的 allowed_hosts 在 settings.py
if env.get("ALLOWED_HOSTS"):
ALLOWED_HOSTS = env.get("ALLOWED_HOSTS")
我的 gunicorn 从 entrypoint.sh 文件执行命令:
gunicorn core.wsgi:application --bind 0.0.0.0:8000
这里也是我的 nginx 容器 docker-compose:
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
我的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" "-"
好的,我做到了 问题出现了,因为在我创建新页面并将其设置为主页后,我还没有创建任何视图或任何带有 URL 的页面它现在正在工作。
我正在尝试使用 docker 和 Nginx 和 Gunicorn 为 Django 定义一个生产环境,当 debug=True 时它工作正常如果我设置 debug=False Issue start here 给我 Bad Request (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/;
}
}
我的 allowed_hosts 在 settings.py
if env.get("ALLOWED_HOSTS"):
ALLOWED_HOSTS = env.get("ALLOWED_HOSTS")
我的 gunicorn 从 entrypoint.sh 文件执行命令:
gunicorn core.wsgi:application --bind 0.0.0.0:8000
这里也是我的 nginx 容器 docker-compose:
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
我的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" "-"
好的,我做到了 问题出现了,因为在我创建新页面并将其设置为主页后,我还没有创建任何视图或任何带有 URL 的页面它现在正在工作。