Ich richte Fehlerseiten auf einer Django-Site in dev ein. Ich erhalte den Fehler mit dem Statuscode „Gut“, aber in der Produktion stimmt der HTTP-Antwortcode nicht überein. Ich erhalte die Antwort 200 auf 404. Ich gehe davon aus, dass nginx Django 404 als 200 rendert, weiß aber nicht, wie ich die 404-Fehlerantwort auf der nginx-Seite richtig definieren soll.
Django:
#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;
}
}
Bearbeiten: 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;