Назад | Перейти на главную страницу

Белый список 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?

Использовать модуль 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