Нужно ли что-то особенное для сопоставления подсетей в nginx при использовании map
? У меня есть конфигурация ниже в http {}
блок. IP-адрес клиента - 10.0.3.1. Если я удалю 10.0.3.1
entry он всегда возвращает deny вместо соответствия подсети 10.0.3.0/24. Требуется ли модуль nginx, которого мне не хватает, или что-то в этом роде?
Я основываю эту конфигурацию на некоторых статьях в блогах, но не могу найти официальную документацию, в которой говорится, что эта нотация поддерживается.
map $remote_addr $allowed {
10.0.3.1 allow;
10.0.2.0/24 allow;
10.0.3.0/24 allow;
default deny;
}
В map
директива отображает строки, поэтому можно представить 10.0.3.0/24
как регулярное выражение и продолжайте использовать map
директива. Но считали ли вы geo
директива, поддерживающая синтаксис IP-адреса?
geo $allowed {
10.0.3.1 allow;
10.0.2.0/24 allow;
10.0.3.0/24 allow;
default deny;
}
Видеть этот документ для подробностей.