Quantcast
Channel: Nginx Forum - Nginx Mailing List - Russian
Viewing all articles
Browse latest Browse all 3102

условный доступ / access control (no replies)

$
0
0
Здравствуйте!

Есть обычный nginx (не plus).

Добавил к нему geoip модуль, все работает. Теперь хочу сделать доступ
на основе geoip и обычных IP списков доступа.

По отдельности geoip и IP acl работают, как сделать чтобы работало вместе?

Логика нужна такая:

- если ip_whitelist, то дальше по конфигурационному файлу
- если ip_blacklist , то return 403
- (тут geoip) если $allowed_country == no, то return 403

если убрать первые два пункта, то получается такая конфигурация nginx
(относительно /etc/nginx/ ) :

nginx.conf :
load_module modules/ngx_http_geoip_module.so;
load_module modules/ngx_stream_geoip_module.so;

cat conf.d/site.conf

map $geoip_country_code $allowed_country {
default no;
RU yes;
}

server {
server_name site.ru;
if ($allowed_country = no) {
return 403;
}
}

и это работает, доступ только тем, для кого geoip вычислил что он из "RU" .

Есть ли возможность добавить еще проверку по IP как описано выше
(whitelist, blacklist, country) ?
Вероятно в теории это можно сделать через директиву(ы) map и условиями
if , но я никак пока не могу сообразить...


Спасибо.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Viewing all articles
Browse latest Browse all 3102

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>