location / {
proxy_pass http://django_upstream;
proxy_set_header Host $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;
}
Cloudflareなどの前段がある場合、Django側でプロキシを信頼する設定を慎重に行います。
SECURE_PROXY_SSL_HEADER = (
"HTTP_X_FORWARDED_PROTO",
"https",
)
この設定は、信頼できるリバースプロキシだけがX-Forwarded-Protoを上書きできる構成で使用します。
インターネットからDjangoへ直接到達できる状態で、任意クライアントが同ヘッダーを偽装できる構成は避けます。
DRFのSessionAuthenticationでログイン済みCookieを使う場合、CSRF検証が必要です。