Nginx

Блок NGINX въз основа на географско местоположение

Блок NGINX въз основа на географско местоположение
Nginx е високопроизводителен, лек уеб сървър с отворен код, достъпен безплатно за обществеността. Той има огромен брой ценни функции в сравнение с други леки сървъри. Една от тези характеристики е неговият geoip_module, който се използва за идентифициране на географското местоположение от мястото, където идва посетителят. По подразбиране той използва в комбинация с данни, предоставени от maxmind, за да разбере географското местоположение на посетителя. Предимството на идентифицирането на географското местоположение е да се налагат различни политики на различни географски местоположения, например ако бизнесът е достъпен само за страни в Северна Америка, с geoip_module той може да блокира всички други посетители, идващи от други региони. Това гарантира, че бизнесът не трябва да спазва правила и разпоредби, прилагани от различни региони, като GDPR (Общ регламент за защита на данните).

Изпълнение

Въпреки че има много начини за внедряване на решението в системата, това ръководство демонстрира най-лесния начин да го регистрирате с минимални усилия.

  1. Очевидно е, че Nginx трябва да бъде инсталиран в системата, преди да започне стъпките в това ръководство. Инсталирането на Nginx обаче не е достатъчно, тъй като изисква също да бъде инсталиран и geo_ip_module. Maxmind пускаше своята база данни във формат dat, но от преди известно време тя беше пусната в mmdb формат. Това кара Nginx да изисква нов geo_ip_module, наречен ngx_http_geoip2_module. Това обаче не се изисква, тъй като старата база данни dat все още е достатъчна. Както и да е, ако nginx не е инсталиран, настройте го със следните две команди.
apt-get update
apt-get инсталирайте nginx
  1. Въведете следната команда, за да се уверите, че е инсталиран модулът http_geoip.
nginx -V

  1. Има множество начини за придобиване / изграждане на базата данни, която съдържа 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 / GeoIP
wget -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
  1. Конфигурирайте конфигурационния файл на Nginx, както следва. Въведете командата в първия ред в терминала на Linux както обикновено и копирайте останалите редове в nginx.conf файл. Уверете се, че името, споменато в / usr / share / GeoIP / GeoIP.dat съвпада с dat файла, съхранен в папката usr / share / GeoIP. Въпреки че в следващия пример той посочва само една държава, множество кодове на държави могат да бъдат посочени като дадения пример с по един ред на код на държава. Наличният списък с кодове за държави може да се намира на това място. http: // www.maxmind.com / app / iso3166.
nano / etc / nginx / nginx.конф
geoip_country / usr / share / GeoIP / GeoIP.dat;
map $ geoip_country_code $ allowed_country
по подразбиране да;
LK не;
  1. Отворете файла по подразбиране чрез всеки текстов редактор (предпочита се nano, тъй като е доста лесно да се редактира с него), след което добавете съдържанието от 2nd линия до между всяко място в блока за местоположение във файла по подразбиране. Кодът работи по този начин, когато посетител направи заявка към уеб сървъра, nginx извлича своите IP адреси и съвпада със своите записи, за да намери съответния код на държавата, ако държавата, спомената в блока на картата, съвпада, не се присвоява на $ allowed_country променлива и по този начин проверката на $ allowed_country позволява да се манипулира отговора. В това ръководство се използва не и по този начин на посетителя се отказва да види съдържанието. Ако има множество домейни като .com, .lk, или nucuta.com или nucuta.net добавете кода от ред 3 към всеки „домейн“.conf файл. Ако nginx е конфигуриран добре, файлът към съответния домейн се намира в папката, достъпна за сайтове.
nano / etc / nginx / sites-available / default
ако ($ разрешена_страна = не)
връщане 444;
  1. Рестартирайте сървъра nginx със следната команда. Оттук нататък достъпът до уеб сървъра от който и да е домейн на шри ланкан (LK) кара уеб сървъра да не връща нищо, както се вижда на следващите екранни снимки. 444 в nginx не представлява нищо. Вместо това тук може да се използва и всеки друг код като 302, 301, 404. Ако са посочени 302 301, трябва да се посочи и URL адрес за пренасочване на посетителя.
systemctl рестартирайте nginx

Заключение

Блокирането на посетители въз основа на тяхната география е от решаващо значение за някои бизнеси да функционират поради различни регионални правила и разпоредби. Nginx обслужва такива нужди със своя модул geo_ip. Той използва бази данни maxmind, за да намери страната по ip адреса на посетителя. Базата данни работи както с Ipv4, така и с ipv6. Тъй като maxmind прекрати наследения си формат на база данни dat, единственият начин да се използват данните им е или конвертиране на новия файлов формат в dat файл, или използване на вече преобразуван такъв, или използване на модул на трета страна за Nginx, за да поддържа mmdb файлов формат. Скриптът на python, предоставен тук, е идеален за преобразуване, въпреки че отнема известно време, за да видите резултата. Maxmind гарантира над 99% точност при намиране на страната въз основа на IP; следователно това е задължителен инструмент за всеки бизнес.

Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...