我在开发环境中的 Django 网站上设置错误页面,我得到了带有正确状态代码的错误,但在生产环境中,HTTP 响应代码不匹配,我在 404 上收到了 200 响应。我假设 nginx 将 Django 404 呈现为 200,但我不知道如何在 nginx 端正确定义 404 错误响应
姜戈:
#views :
from django.shortcuts import render
def handler404(request):
return render(request,'public/404.html', status=404)
#urls.py:
...
handler404 = 'public.views.404.handler404'
Nginx的:
server {
listen 80;
server_name www.myproject.fr;
location / {
include proxy_params;
proxy_pass http://unix:/root/myproject/myproject.sock;
}
}
编辑:Proxy_params:
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;