Как в nginx ограничить доступ по ip?

Пользователь

от alisa.bahringer , в категории: Другие , 7 месяцев назад

Как в nginx ограничить доступ по ip?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от craig.emmerich , 6 месяцев назад

@alisa.bahringer 

Для ограничения доступа по IP в nginx есть несколько способов.

  1. Использование директив allow и deny в блоке http:
1
2
3
4
5
6
http {
    ...
    deny 192.168.1.1;
    allow 192.168.1.0/24;
    ...
}


В этом примере запрещается доступ с IP адреса 192.168.1.1 и разрешается доступ с любого адреса в подсети 192.168.1.0/24.

  1. Использование блока location или server с директивами allow и deny:
1
2
3
4
5
location / {
    deny 192.168.1.1;
    allow 192.168.1.0/24;
    ...
}


В этом случае ограничение доступа будет действовать только для указанного местоположения.

  1. Использование модуля geo для определения доступных IP адресов:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
http {
    ...
    geo $allow_ip {
        default 0;
        192.168.1.0/24 1;
        ...
    }

    server {
        ...
        location / {
            if ($allow_ip = 0) {
                return 403;
            }
            ...
        }
    }
}


В этом примере определены доступные IP адреса с помощью переменной $allow_ip, а затем проверяется эта переменная в блоке location. Если значение переменной равно 0, то доступ запрещается.


После внесения изменений в конфигурацию nginx необходимо перезапустить сервер для применения новых настроек.