nginx geoip фильтрация

Дата | 01.09.2018

Настройка nginx geoip фильтрация
Привет, моя заметка настройка nginx geoip фильтрация.
Недавно мне поставили задачу, заблокировать весь трафик на сервер, но оставить только сети России и Испании.
В предыдущей статье я сделал все через системный файрвол ipfw.
Но вспомнилось, что есть способ и с помощью самого вэб сервера nginx фильтровать трафик.
Вот что получилось.
Для этого нам понадобится собрать nginx с модулем geoip и свежую базу ip
Качаем базу ip адресов.

# fetch http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

Распаковываем.

# gunzip GeoIP.dat.gz

Копируем базу.

# cp GeoIP.dat /usr/local/etc/nginx/

После пере собираем нгинс.
В http конфиг nginx

geoip_country /usr/local/etc/nginx/GeoIP.dat;
map $geoip_country_code $allowed_country {
  default 0;
  RU 1;
  ES 1;
}

А это в сам виртуальный хост добавить.

if ($allowed_country = '0') {
  return 403;
  break;
}

Перезагружаем вэб сервер.

# /usr/local/etc/rc.d/nginx restart

Вот как бы и вся настройка nginx geoip фильтрация.
Но не забывайте о пагубных последствий сео в этом способе.
По-хорошему нужно разрешать еще поисковых ботов иначе на сайте может просесть трафик, но в моем случае на сео было всем пофиг.

nginx разделение логов.
nginx блокируем плохих ботов.
joomla nginx redirect.
nginx ssl letsencrypt редирект на другой домен.
nginx webp правило отображения картинок.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *