Nginx

NGINX-blok baseret på geografisk placering

NGINX-blok baseret på geografisk placering
Nginx er en højtydende, letvægts, open source-webserver, der er tilgængelig for offentligheden gratis. Det har et enormt antal værdifulde funktioner sammenlignet med andre lette servere. En af sådanne funktioner er dens geoip_module, som bruges til at identificere den geografiske geografiske placering, hvorfra den besøgende kommer. Som standard bruger den i kombination med data leveret af maxmind for at finde ud af den geografiske placering af den besøgende. Fordelen ved at identificere den geografiske placering er at håndhæve forskellige politikker til forskellige geografiske placeringer, for eksempel hvis en virksomhed kun er tilgængelig for lande i Nordamerika, med geoip_module kan den blokere alle andre besøgende fra andre regioner. Dette sikrer, at virksomheden ikke behøver at overholde regler og regler, der håndhæves af forskellige regioner, såsom GDPR (General Data Protection Regulation).

Implementering

Selvom der er mange måder at implementere løsningen på i systemet, viser denne guide den nemmeste måde at tilmelde den med mindst mulig indsats.

  1. Det er klart, at Nginx skal installeres i systemet, før trinene i denne vejledning påbegyndes. Det er dog ikke nok at have Nginx installeret, da det også kræver, at geo_ip_module installeres. Maxmind plejede at frigive deres database i dat-format, men siden for et stykke tid siden blev den frigivet i mmdb-format. Dette gør Nginx til at kræve en ny geo_ip_module kaldet ngx_http_geoip2_module. Det er dog ikke nødvendigt, da den gamle datdatabase stadig er tilstrækkelig. Under alle omstændigheder, hvis nginx ikke er installeret, skal du konfigurere det med følgende to kommandoer.
apt-get opdatering
apt-get install nginx
  1. Skriv følgende kommando for at sikre, at http_geoip-modulet er installeret.
nginx -V

  1. Der er flere måder at erhverve / opbygge den database, der indeholder IP-adresser og deres respektive land, bynavne. Installer geo_ip-databasen med følgende kommandoer. Brug af denne metode gør det let at installere geo_Ip-databasen i systemet. Den mest ideelle måde er dog at downloade en ny kopi, da de opdateres med de nyeste oplysninger. Så brug en af ​​de tre muligheder nedenfor. Den første mulighed er nok for enhver gennemsnitlig bruger, 2nd mulighed er at hente den nyeste database med maxmind, den tredje mulighed konverterer mmdb-databasen til sit respektive dat-filformat.
    Det er tid og ressourcekrævende og anbefales derfor ikke til svage servere. Hvis der stadig er behov for opdateret database, skal du bruge mulighed 2. Det sparer tid og penge ved konvertering af filen, men sikkerheden kan ikke garanteres, da den konverteres af en anden, ikke af nogen officiel part. Mulighed 3 kræver 3 pip-pakker, setuptools, ipaddr, dcryptit. Og det bruger python 2 til at behandle scriptet. Den sidste linje konverterer zip-arkivet til .dat-fil. Selvom det er nævnt om konvertering af mmdb-filformat til .dat, her konverterer den faktisk en CSV-fil til en .dat-filformat, og det kræver derfor geoname2fips.csv-fil, der følger med konverteringsfilbunten.

Mulighed 1

apt-get install geoip-database libgeoip1

Mulighed 2

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

Mulighed 3

cd / hjem /
mkdir geolite2legacy /
git klon https: // github.com / sherpya / geolite2legacy
apt-get installer python
apt-get installer python-pip
pip installer installationsværktøjer
pip installer ipaddr
pip install dcryptit
cd / usr / del /
mkdir GeoIP /
cd / usr / del / GeoIP /
wget https: // geolit.maxmind.com / download / geoip / database / GeoLite2-Country-CSV.lynlås
pyton / hjem / geolite2legacy / geolite2legacy.py -i / usr / share / GeoIP / GeoLite2-Country-CSV.lynlås -f
/ hjem / geolite2legacy / geoname2fips.csv -o / usr / share / GeoIP / GeoLite2-Country.dat
  1. Konfigurer Nginx-konfigurationsfilen som følger. Skriv kommandoen i den første linje i Linux-terminalen som normalt, og kopier resten af ​​linjerne til nginx.conf-fil. Sørg for, at navnet er nævnt i / usr / del / GeoIP / GeoIP.dat matcher datfilen, der er gemt i usr / share / GeoIP-mappen. Selvom det i det følgende eksempel kun angiver et land, kan flere landekoder angives som det givne eksempel med en linje pr. Landekode. Den tilgængelige landekodeliste for lande kan findes på dette sted. http: // www.maxmind.com / app / iso3166.
nano / etc / nginx / nginx.konf
geoip_country / usr / share / GeoIP / GeoIP.dat;
kort $ geoip_country_code $ allow_country
standard ja;
LK nr
  1. Åbn standardfilen via en hvilken som helst teksteditor (nano foretrækkes, da det er ret nemt at redigere med det), og tilføj derefter indholdet siden 2nd linje ind imellem hvor som helst i placeringsblok i standardfilen. Koden fungerer således, når en besøgende fremsætter en anmodning til webserveren, henter nginx deres IP-adresser og matcher med sine poster for at finde den respektive landekode. Hvis det land, der er nævnt i kortblokken, matcher, tildeles nej til $ allow_country-variablen og derved kontrol af $ allow_country giver mulighed for at manipulere svaret. I denne vejledning bruger den nej, og dermed nægtes den besøgende at se indholdet. Hvis der er flere domæner som .com, .lk eller nucuta.com eller nucuta.net tilføj koden siden linje 3 til hvert “domæne”.conf-fil også. Hvis nginx er konfigureret godt, er filen til det respektive domæne placeret i en mappe, der er tilgængelig for websteder.
nano / etc / nginx / sites-tilgængelig / standard
hvis ($ allow_country = nej)
returnere 444;
  1. Genstart nginx-serveren med følgende kommando. Herefter får du adgang til webserveren fra ethvert Sri Lanka-domæne (LK) -domæne, hvilket får webserveren til at returnere intet som set i de følgende skærmbilleder. 444 i nginx repræsenterer intet. Enhver anden kode såsom 302, 301, 404 kan også bruges her i stedet. Hvis der er angivet 302.301, skal der også angives en URL til at omdirigere den besøgende.
systemctl genstart nginx

Konklusion

At blokere besøgende baseret på deres geografi er afgørende for, at nogle virksomheder kan fungere på grund af forskellige regionale regler og regler. Nginx imødekommer sådanne behov med sit geo_ip-modul. Det bruger maxmind-databaser til at finde landet efter den besøgendes ip-adresse. Databasen fungerer med både Ipv4 og ipv6. Da maxmind afbrød deres ældre dat-databaseformat, er den eneste måde at gøre brug af deres data på enten at konvertere det nye filformat til dat-fil eller bruge et allerede konverteret format eller bruge et tredjepartsmodul til Nginx til at understøtte mmdb-filformat. Python-scriptet giver her er ideel til konvertering, selvom det tager et stykke tid at se resultatet. Maxmind garanterer over 99% nøjagtighed i at finde landet baseret på IP; derfor er det et must have værktøj til enhver virksomhed.

Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...
Bedste kommandoliniespil til Linux
Kommandolinjen er ikke kun din største allierede, når du bruger Linux, den kan også være kilde til underholdning, fordi du kan bruge den til at spille...
Bedste apps til Gamepad Mapping til Linux
Hvis du kan lide at spille spil på Linux med en gamepad i stedet for et typisk tastatur- og musesystem, er der nogle nyttige apps til dig. Mange pc-sp...