Модуль ngx_http_access_module позволяет ограничить доступ для определённых адресов клиентов.
Ограничить доступ можно также по паролю, по результату подзапроса или по JWT. Одновременное ограничение доступа по адресу и паролю управляется директивой satisfy.
Пример конфигурации
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny all;
}
Правила проверяются в порядке их записи до первого соответствия. В данном примере доступ разрешён только для IPv4-сетей 10.1.1.0/16 и 192.168.1.0/24, кроме адреса 192.168.1.1, и для IPv6-сети 2001:0db8::/32. Если правил много, то лучше воспользоваться переменными модуля ngx_http_geo_module.
Директивы
| Синтаксис: | allow адрес | CIDR | unix: | all; |
|---|---|
| Умолчание: | — |
| Контекст: | http, server, location, limit_except |
Разрешает доступ для указанной сети или адреса. Если указано специальное значение unix: (1.5.1), разрешает доступ для всех UNIX-сокетов.
| Синтаксис: | deny адрес | CIDR | unix: | all; |
|---|---|
| Умолчание: | — |
| Контекст: | http, server, location, limit_except |
Запрещает доступ для указанной сети или адреса. Если указано специальное значение unix: (1.5.1), запрещает доступ для всех UNIX-сокетов.