Это в основном то, как работает модуль гео-ip Nginx, я сделал то же самое, что и сканеры Google белого списка на моих сайтах.
В вашем блоке http
определите директиву geo
и добавьтедиапазоны CIDR ip, которые вы хотите заблокировать:
geo $badips {
default 0;
64.233.160.0/19 1;
66.102.0.0/20 1;
...
}
Это установит значение переменной $badips
в 1
для запросов, исходящих с этих IP-адресов.
Затем в вашем *Блок 1012 *, перед любыми location
блоками добавьте:
if ($badips) {
return 444;
}
Перезагрузите Nginx и все, запросы, для которых значение $bdips
будет установлено равным 1, будут сервером с кодом ответа 444 (вы можете изменитьесли хотите, укажите другой адрес.
Если вы хотите сохранить запрещенные адреса в другом файле, вы можете сделать это, а внутри директивы geo
просто добавьте include path/to/file;
.Синтаксис во включаемом файле должен быть таким же, как указано выше.