Как получить оригинальный хост в django с помощью прокси?
Я использую прокси nginx для приложения django. И я хочу, чтобы параметр request.META['HTTP_HOST']
получал мой реальный хост. Поэтому я использую параметр USE_X_FORWARDED_HOST
. Но request.META['HTTP_HOST']
все равно получает неверное значение от прокси.
nginx
location / {
proxy_set_header X-Forwarded-Proto http;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://backend:8000;
}
настройки джанго
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
части request.META
переменной
'HTTP_HOST': 'backend:8000',
'HTTP_X_FORWARDED_PROTO': 'http',
'HTTP_X_FORWARDED_HOST': 'localhost',
'HTTP_X_FORWARDED_SERVER': 'localhost',
'HTTP_X_FORWARDED_FOR': '192.168.240.1'
Почему не работает настройка USE_X_FORWARDED_HOST
? Я использую Django 4.0.