開発環境では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;