up
ГлавнаяБлогБезопасностьЖелезоПрограммированиеАдминистрирование
RAMBashHTMLCPULinuxDebianMySQLBenchmarkSSDPerlPHPCentOSFreeBSDHDD

Популярные статьи
Категория “Администрирование

Использование GeoIP в Nginx

Ставим библиотеки:

для Debian

aptitude install gcc libpcre3-dev libxml2-dev make libssl-dev libxslt-dev libgd2-xpm-dev libgeoip-dev libperl-dev

для CentOS

yum install gcc-c++ pcre-devel openssl-devel libxml2-devel libxslt-devel gd-devel GeoIP-devel

Скачиваем последние базы GeoLiteCity и GeoIP:

cd /usr/share/GeoIP
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz

Скачиваем nginx:

cd /usr/src
wget -q -O - http://nginx.org/download/nginx-1.8.0.tar.gz | tar xz
cd nginx-1.8.0

Собираем Nginx c поддержкой geoip. Если nginx был уже установлен ранее смотрим его параметры с помощью команды nginx -V:

./configure _ваши_параметры_ --with-http_geoip_module
make
make install

Подключаем в конфиге nginx geoip, добавив строки:

# GeoIP
geoip_country /usr/share/GeoIP/GeoIP.dat; # the country IP database
geoip_city /usr/share/GeoIP/GeoLiteCity.dat; # the city IP database

По желанию можно ограничить доступ к сайту только с определенных стран. Для этого в секцию http добавляем, для разрешения RU, UA:

map $geoip_country_code $bad_country {
    default 1;
    UA 0;
    RU 0;
}

А в секцию server следующее:

if ($bad_country) {
    return 403;
}

Перезапускаем nginx:

service nginx restart

Thursday, 21 August 2014, 18:39Прочитано 41 раз
Ссылка на страницу:

comments powered by Disqus

Чаще всего ищут

Статистика блога
Статтей: 177
Безопасность: 9
Железо: 19
Программирование: 14
Администрирование: 134