LINUX.ORG.RU
ФорумAdmin

Nginx. Как замапить внутренние подсети чтобы выполнить для них условие?

 


0

1

Всем привет

Хочу сделать так чтобы для пользователей из локальной сети офиса выполнялся другой proxy_pass в отличии от пользователей извне.

Пытаюсь сделать так

map $remote_addr $internal {
default off;
192.168.100.0/24 on;
192.168.200.0.24 on; 
}

server {
..........
location /ops{
 if ($internal = on){
   proxy_pass ip_proxy1;
 }
 proxy_pass ip_proxy2;
}
.........
}

Но не срабатывает( Что не так делаю? Спасибо заранее

Во-первых у тебя там «192.168.200.0__.__24», видимо опечатка. Во-вторых if в nginx штука специфичная, лучше лишний раз не использовать. Думаю правильнее будет map-ом класть ip_proxy1 или ip_proxy2 в переменную и её использовать с proxy_pass

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Ну и вхождение адреса в подсеть, подозреваю, проверяется не так. Бегло погуглил, получается надо либо на регулярку переписать, либо geo вместо map использовать https://serverfault.com/questions/801492/nginx-map-directive-not-working-with-subnet-masks

MrClon ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.