Nginx

NGINX blok zasnovan na zemljopisnom položaju

NGINX blok zasnovan na zemljopisnom položaju
Nginx je vrlo učinkovit, lagan web poslužitelj otvorenog koda dostupan javnosti besplatno. Ima ogroman broj vrijednih značajki u usporedbi s ostalim laganim poslužiteljima. Jedna od takvih značajki je njegov geoip_module, koji se koristi za identificiranje geografskog mjesta odakle posjetitelj dolazi. Prema zadanim postavkama koristi se u kombinaciji s podacima koje je dostavio maxmind kako bi doznao zemljopisni položaj posjetitelja. Prednost identificiranja zemljopisnog položaja je provođenje različitih politika na različitim zemljopisnim lokacijama, na primjer, ako je poduzeće dostupno samo zemljama sjeverne Amerike, geoip_module može blokirati sve ostale posjetitelje koji dolaze iz drugih regija. To osigurava da poduzeće ne mora poštivati ​​pravila i propise koje provode različite regije, kao što je GDPR (Opća uredba o zaštiti podataka).

Provedba

Iako postoji mnogo načina za implementaciju rješenja u sustav, ovaj vodič prikazuje najlakši način da ga se upiše uz minimalan napor.

  1. Očito je da Nginx mora biti instaliran u sustav prije pokretanja koraka u ovom vodiču. Međutim, instaliranje Nginxa nije dovoljno, jer također zahtijeva da se instalira i geo_ip_module. Maxmind je nekad objavljivao svoju bazu podataka u datom formatu, ali odnedavno je objavljena u mmdb formatu. To čini da Nginx zahtijeva novi geo_ip_module nazvan ngx_http_geoip2_module. Međutim, nije potrebno jer je stara dat baza podataka još uvijek dovoljna. U svakom slučaju, ako nginx nije instaliran, podesite ga sa sljedeće dvije naredbe.
apt-get ažuriranje
apt-get instalirati nginx
  1. Upišite sljedeću naredbu da biste bili sigurni da je instaliran http_geoip modul.
nginx -V

  1. Postoji više načina za stjecanje / izgradnju baze podataka koja sadrži IP adrese i nazive njihovih gradova i država. Instalirajte bazu podataka geo_ip pomoću sljedećih naredbi. Korištenjem ove metode olakšava se instalacija baze podataka geo_Ip u sustav. Međutim, najidealniji način je preuzimanje svježe kopije jer su ažurirane najnovijim informacijama. Dakle, upotrijebite jednu od tri dolje navedene opcije. Prva opcija dovoljna je za svakog prosječnog korisnika, 2nd opcija je dobiti najnoviju bazu podataka maxmind, treća opcija pretvara mmdb bazu podataka u odgovarajući format datoteke dat.
    Vrijeme i resursi troše i stoga se ne preporučuju za slabe poslužitelje. Međutim, ako je ažurirana baza podataka i dalje potrebna, upotrijebite opciju 2. Štedi vrijeme i novac u pretvaranju datoteke, ali sigurnost ne može biti zajamčena jer je pretvara netko drugi, a ne bilo koja službena strana. Opcija 3 zahtijeva 3 pip paketa, setuptools, ipaddr, dcryptit. I koristi python 2 za obradu skripte. Posljednji redak pretvara zip arhivu u .dat datoteka. Iako se spominje konverzija mmdb formata datoteke u .dat, ovdje zapravo pretvara CSV datoteku u .dat, i stoga zahtijeva geoname2fips.csv datoteku koja dolazi zajedno sa paketom datoteke pretvorbe.

opcija 1

apt-get instalirati geoip-bazu podataka libgeoip1

2. opcija

cd / usr / share / GeoIP
wget -o maxmind.dat.gz https: // bit.ly / 2Gh3gTZ
gunzip maxmind.dat.gz

3. opcija

cd / home /
mkdir geolite2legacy /
git klon https: // github.com / sherpya / geolite2legacy
apt-get instalirati python
apt-get instalirati python-pip
pip instalirati setuptools
pip instalirati ipaddr
pip instalirati dcryptit
cd / usr / share /
mkdir GeoIP /
cd / usr / share / GeoIP /
wget https: // geolite.maxmind.com / download / geoip / database / GeoLite2-Country-CSV.zip
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. Konfigurirajte konfiguracijsku datoteku Nginx kako slijedi. Upišite naredbu u prvi redak Linux terminala kao i obično, a ostatak redaka kopirajte u nginx.conf datoteka. Obavezno ime spomenuto u / usr / share / GeoIP / GeoIP.dat podudara se s datom datotekom koja je pohranjena u mapi usr / share / GeoIP. Iako u sljedećem primjeru navodi samo jednu državu, kao navedeni primjer može se navesti više kodova država s jednim retkom po kodu države. Dostupni popis kodova za države može se nalaziti na ovom mjestu. http: // www.maxmind.com / app / iso3166.
nano / etc / nginx / nginx.konf
geoip_country / usr / share / GeoIP / GeoIP.dat;
mapa $ geoip_country_code $ allowed_country
zadano da;
LK br;
  1. Otvorite zadanu datoteku putem bilo kojeg uređivača teksta (poželjno je nano jer je njime vrlo jednostavno uređivati), a zatim dodajte sadržaj od 2nd redak između bilo kojeg mjesta u bloku lokacije u zadanoj datoteci. Kôd djeluje ovako: kada posjetitelj uputi zahtjev web serveru, nginx dohvati njihove IP adrese i podudara se sa svojim zapisima kako bi pronašao odgovarajući kod države, ako se država navedena u bloku karte podudara s brojem ne, $ allowed_country varijabla, a time provjeravanje $ allowed_country omogućuje manipuliranje odgovorom. U ovom se vodiču koristi ne, pa je posjetitelju zabranjeno da vidi sadržaj. Ako postoji više domena poput .com, .lk, ili nucuta.com ili nucuta.net dodajte kôd od retka 3 u svaku "domenu".datoteku conf. Ako je nginx dobro konfiguriran, datoteka odgovarajuće domene nalazi se u mapi dostupnoj web lokacijama.
nano / etc / nginx / sites-available / default
ako ($ dopušteno_zemlja = ne)
povratak 444;
  1. Ponovno pokrenite nginx poslužitelj sljedećom naredbom. Nakon pristupa web poslužitelju s bilo koje šri lankan (LK) domene, web poslužitelj ne vraća ništa kao što se vidi na sljedećim snimkama zaslona. 444 u nginxu ne predstavlja ništa. Umjesto toga, ovdje se može koristiti bilo koji drugi kod poput 302, 301, 404. Ako je navedeno 302.301, trebao bi biti naveden i URL za preusmjeravanje posjetitelja.
systemctl ponovno pokrenite nginx

Zaključak

Blokiranje posjetitelja na temelju njihovog zemljopisnog položaja presudno je za funkcioniranje nekih poduzeća zbog različitih regionalnih pravila i propisa. Nginx zadovoljava takve potrebe svojim geo_ip modulom. Koristi baze podataka maxmind za pronalaženje zemlje prema ip adresi posjetitelja. Baza podataka radi i s Ipv4 i ipv6. Budući da je maxmind ukinuo svoj naslijeđeni format baze podataka dat, jedini način da iskoriste njihove podatke je pretvaranje novog formata datoteke u dat datoteku ili korištenje već pretvorenog ili korištenje modula treće strane za Nginx za podršku mmdb formata datoteke. Python skripta ovdje nudi idealnu je za pretvorbu iako treba neko vrijeme da se vidi ishod. Maxmind jamči preko 99% točnosti u pronalaženju zemlje na temelju IP-a; stoga to mora imati alat za svako poslovanje.

Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...
OpenTTD vs Simutrans
Stvaranje vlastite simulacije prijevoza može biti zabavno, opuštajuće i izuzetno primamljivo. Zbog toga morate isprobati što više igara kako biste pro...
Vodič za OpenTTD
OpenTTD je jedna od najpopularnijih igara za poslovnu simulaciju. U ovoj igri morate stvoriti prekrasan prijevoznički posao. Međutim, počet ćete u poč...