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

Как заблокировать перенаправленный IP-адрес X в nginx

Мой веб-сайт работает под управлением балансировщика нагрузки aws. Теперь, если я попытаюсь запретить любой IP-адрес для доступа к моему веб-сайту, используя «deny 59.92.130.106» в разделе location /, ничего не произошло. Этот IP-адрес все еще получает ответ 200. Кто-нибудь знает, почему это произошло и как я могу заблокировать любой IP-адрес в nginx, работающем за балансировщиком нагрузки aws? Я использовал запись ниже, но она не работает.

location / {
    deny 59.92.130.106;
}

Если ваш балансировщик нагрузки правильно настроен для поддержки X-Forwarder-For HTTP-заголовок, вы можете использовать что-то вроде

map $http_x_forwarded_for $block {
    59.92.130.106         1;
    <another_blocked_ip>  1;
    ...
}
server {
    ...
    location / {
        if ($block) { return 403; }
        ...
    }
    ...
}

или если вы хотите разрешить доступ только для некоторых IP-адресов

map $http_x_forwarded_for $block {
    59.92.130.106         '';
    <another_allowed_ip>  '';
    ...
    default               1;
}