Какова цель установки заголовка «X-Forwarded-For» в nginx - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть следующая 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, но я не уверен, что оно связано.

1 Ответ

1 голос
/ 08 апреля 2020

Из Mozilla docs

Заголовок X-Forwarded-For (XFF) де-факто является стандартным заголовком для идентификации исходного IP-адреса клиента, подключающегося к сети. сервер через HTTP-прокси или балансировщик нагрузки. Когда трафик c перехватывается между клиентами и серверами, журналы доступа к серверу содержат только IP-адрес прокси или балансировщика нагрузки. Чтобы увидеть исходный IP-адрес клиента, используется заголовок запроса X-Forwarded-For.

На самом деле, я думаю, что вы неправильно поняли заголовок Host. Насколько я понимаю, это будет IP-адрес сервера nginx.

...