В предыдущих статьях мы рассмотрели вариант подключения модуля geoip к nginx, в данной статье на практке рассмотрим как ограничить доступ к нашим проектам с определенных стран, а также внести список исключений по IP для стран, которых блокируем.
В основном nginx.conf в секции http {…} необходимо добавить список стран и внести исключения для некоторых IP:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
geoip_country /usr/share/GeoIP/GeoIP.dat; map $geoip_country_code3 $allowed_country { default yes; RUS no; UZB no; } geo $exclusions { default no; 10.10.1.160 yes; 192.168.1.0/23 yes; } |
В конфиге самого виртуального хоста необходимо прописать условие в секции server {…}:
1 2 3 4 5 6 |
if ($allowed_country = yes) { set $exclusions yes; } if ($exclusions = "no") { return 403; } |
проверяем конфиги
1 |
nginx -t |
перезагружаемся
1 |
service nginx restart |