У меня есть следующая Nginx конфигурация для моего Django приложения:
upstream api {
server localhost:8000;
}
server {
listen 80;
location / {
proxy_pass http://api;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /staticfiles {
alias /app/static/;
}
}
Я основал эту конфигурацию на учебнике здесь . После некоторых исследований похоже, что установка заголовка Host
позволяет API Django определять IP-адрес исходного клиента (вместо IP-адреса прокси-сервера).
В чем смысл заголовка X-Forwarded-For
? Я вижу поле $http_x_forwarded_for
в журналах nginx, но я не уверен, что оно связано.