В Nginx Я проверяю, идет ли IP-адрес из заблокированной страны. Если это тогда, посетитель получает 403. Мне нужна возможность добавлять белые списки, чтобы они могли, даже если они являются частью заблокированных стран.IP-адреса белых списков в файле Nginx Virtual Host File Blocking
Я бы предпочел использовать белый список IP-адресов в местоположении nginx.conf, поэтому мне не нужно обновлять файлы более 30 виртуальных хостов. Как я могу это сделать?
В каждом из Nginx виртуальных файлов хост в/и т.д./Nginx/сайты с поддержкой
location/{
if ($allowed_country = no) {
return 403;
}
try_files $uri $uri/ /index.php$is_args$args;
}
Список стран создается в /etc/nginx/nginx.conf
## GEOIP settings
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
default yes;
RU no;
BR no;
UA no;
PH no;
IN no;
CN no;
}
Hi Ben, Этот geoip уже находится в отдельном файле (GeoIP.dat), и блокировка страны работает правильно. Включение уже является частью файла nginx.conf. Я ищу способ добавления белых списков в эту функциональность, но я не знаю синтаксиса для включения его либо в функцию $ geoip_country_code $ allowed_country в файле nginx.conf, либо в каждом файле виртуального хоста. Это то, с чем мне нужна помощь. Благодаря! – ComputerGiant
Понятно, я тогда неправильно понял вопрос. Способ сделать это будет [geo module] (http://nginx.org/en/docs/http/ngx_http_geo_module.html). Я обновлю свой ответ – Ben
Привет, Бен, когда я реализую это или подобные решения, я получаю 403 от всех IP-адресов. Похоже, что geo $ allowed_ip по умолчанию отрицает все IP-адреса. Невозможно установить значение по умолчанию = нет и установить if ($ allowed_ip = yes) {try files ... – ComputerGiant