Белый список IP-адресов на веб-серверах nginx, стоящих за Elastic Load Balancer
Я запускаю веб-серверы nginx в AWS за упругим балансировщиком нагрузки. Настоящий IP получен через X-Forwarded-For. Проблема заключается в том, как использовать это, чтобы запретить все и вносить в белый список только конкретные источники для определенных мест.
Что-то вроде: location /test/ { include /etc/nginx/allowed-XForwardedFor.conf; отрицать все; }
Могу ли я перехватить IP-адреса X-Forwarded-For с помощью переменной, а затем использовать его в файле conf или каким-либо образом использовать его с опцией allow в местах, или сделать это с помощью условного оператора if?
1 ответ
Используйте модуль nginx realip, и тогда вам не нужно беспокоиться о заголовке X-Forwarded-For; Вы можете просто действовать на IP-адресах, как если бы балансировщик нагрузки не был там.
Пример конфигурации:
http {
real_ip_header X-Forwarded-For;
set_real_ip_from 172.19.0.0/16; # Netblock for my ELB's