Изпълнение
Въпреки че има много начини за внедряване на решението в системата, това ръководство демонстрира най-лесния начин да го регистрирате с минимални усилия.
- Очевидно е, че Nginx трябва да бъде инсталиран в системата, преди да започне стъпките в това ръководство. Инсталирането на Nginx обаче не е достатъчно, тъй като изисква също да бъде инсталиран и geo_ip_module. Maxmind пускаше своята база данни във формат dat, но от преди известно време тя беше пусната в mmdb формат. Това кара Nginx да изисква нов geo_ip_module, наречен ngx_http_geoip2_module. Това обаче не се изисква, тъй като старата база данни dat все още е достатъчна. Както и да е, ако nginx не е инсталиран, настройте го със следните две команди.
apt-get инсталирайте nginx
- Въведете следната команда, за да се уверите, че е инсталиран модулът http_geoip.
- Има множество начини за придобиване / изграждане на базата данни, която съдържа IP адреси и съответните им имена на държави и градове. Инсталирайте базата данни geo_ip със следните команди. Използването на този метод улеснява инсталирането на базата данни geo_Ip в системата. Най-идеалният начин обаче е изтеглянето на ново копие, тъй като те се актуализират с най-новата информация. Така че, използвайте една от трите опции, дадени по-долу. Първият вариант е достатъчен за всеки средностатистически потребител, 2nd Опцията е да получите най-новата база данни на maxmind, третата опция преобразува базата данни mmdb в съответния файлов формат dat.
Отнема време и ресурси и поради това не се препоръчва за слаби сървъри. Ако обаче все още е необходима актуализирана база данни, използвайте опцията 2. Спестява време и пари при конвертиране на файла, но сигурността не може да бъде гарантирана, тъй като е конвертирана от някой друг, а не от която и да е официална страна. Опцията 3 изисква 3 пип пакета, setuptools, ipaddr, dcryptit. И той използва python 2 за обработка на скрипта. Последният ред преобразува zip архива в .dat файл. Въпреки че се споменава за конвертиране на mmdb файлов формат в .dat, тук той всъщност преобразува CSV файл в .dat, и по този начин той изисква geoname2fips.csv файл, който идва заедно с пакета на файла за преобразуване.
Опция 1
apt-get инсталиране на geoip-база данни libgeoip1Вариант 2
cd / usr / share / GeoIPwget -o maxmind.dat.gz https: // бит.ly / 2Gh3gTZ
gunzip maxmind.dat.gz
Вариант 3
cd / начало /mkdir geolite2legacy /
git clone https: // github.com / sherpya / geolite2legacy
apt-get инсталирайте python
apt-get инсталирайте python-pip
pip инсталирайте setuptools
pip инсталирайте ipaddr
pip инсталирайте dcryptit
cd / usr / споделяне /
mkdir GeoIP /
cd / usr / share / GeoIP /
wget https: // геолит.maxmind.com / download / geoip / database / GeoLite2-Country-CSV.цип
pyton / home / geolite2legacy / geolite2legacy.py -i / usr / share / GeoIP / GeoLite2-Country-CSV.zip -f
/ home / geolite2legacy / geoname2fips.csv -o / usr / share / GeoIP / GeoLite2-Country.dat
- Конфигурирайте конфигурационния файл на Nginx, както следва. Въведете командата в първия ред в терминала на Linux както обикновено и копирайте останалите редове в nginx.conf файл. Уверете се, че името, споменато в / usr / share / GeoIP / GeoIP.dat съвпада с dat файла, съхранен в папката usr / share / GeoIP. Въпреки че в следващия пример той посочва само една държава, множество кодове на държави могат да бъдат посочени като дадения пример с по един ред на код на държава. Наличният списък с кодове за държави може да се намира на това място. http: // www.maxmind.com / app / iso3166.
geoip_country / usr / share / GeoIP / GeoIP.dat;
map $ geoip_country_code $ allowed_country
по подразбиране да;
LK не;
- Отворете файла по подразбиране чрез всеки текстов редактор (предпочита се nano, тъй като е доста лесно да се редактира с него), след което добавете съдържанието от 2nd линия до между всяко място в блока за местоположение във файла по подразбиране. Кодът работи по този начин, когато посетител направи заявка към уеб сървъра, nginx извлича своите IP адреси и съвпада със своите записи, за да намери съответния код на държавата, ако държавата, спомената в блока на картата, съвпада, не се присвоява на $ allowed_country променлива и по този начин проверката на $ allowed_country позволява да се манипулира отговора. В това ръководство се използва не и по този начин на посетителя се отказва да види съдържанието. Ако има множество домейни като .com, .lk, или nucuta.com или nucuta.net добавете кода от ред 3 към всеки „домейн“.conf файл. Ако nginx е конфигуриран добре, файлът към съответния домейн се намира в папката, достъпна за сайтове.
ако ($ разрешена_страна = не)
връщане 444;
- Рестартирайте сървъра nginx със следната команда. Оттук нататък достъпът до уеб сървъра от който и да е домейн на шри ланкан (LK) кара уеб сървъра да не връща нищо, както се вижда на следващите екранни снимки. 444 в nginx не представлява нищо. Вместо това тук може да се използва и всеки друг код като 302, 301, 404. Ако са посочени 302 301, трябва да се посочи и URL адрес за пренасочване на посетителя.
Заключение
Блокирането на посетители въз основа на тяхната география е от решаващо значение за някои бизнеси да функционират поради различни регионални правила и разпоредби. Nginx обслужва такива нужди със своя модул geo_ip. Той използва бази данни maxmind, за да намери страната по ip адреса на посетителя. Базата данни работи както с Ipv4, така и с ipv6. Тъй като maxmind прекрати наследения си формат на база данни dat, единственият начин да се използват данните им е или конвертиране на новия файлов формат в dat файл, или използване на вече преобразуван такъв, или използване на модул на трета страна за Nginx, за да поддържа mmdb файлов формат. Скриптът на python, предоставен тук, е идеален за преобразуване, въпреки че отнема известно време, за да видите резултата. Maxmind гарантира над 99% точност при намиране на страната въз основа на IP; следователно това е задължителен инструмент за всеки бизнес.