Nginx

Blok NGINX na základě geografického umístění

Blok NGINX na základě geografického umístění
Nginx je vysoce výkonný, lehký webový server s otevřeným zdrojovým kódem, který je veřejnosti přístupný zdarma. Ve srovnání s jinými lehkými servery má obrovské množství cenných funkcí. Jednou z takových funkcí je jeho geoip_module, který se používá k identifikaci geografického grafického umístění, odkud návštěvník přichází. Ve výchozím nastavení používá v kombinaci s údaji poskytnutými společností maxmind ke zjištění geografické polohy návštěvníka. Výhodou identifikace geografického umístění je prosazení různých zásad pro různé geografické polohy, například pokud je podnik k dispozici pouze pro země v Severní Americe, s geoip_module může blokovat všechny ostatní návštěvníky přicházející z jiných regionů. Tím je zajištěno, že podnik nemusí dodržovat pravidla a předpisy vynucované různými regiony, například GDPR (General Data Protection Regulation).

Implementace

I když existuje mnoho způsobů, jak implementovat řešení v systému, tato příručka ukazuje nejjednodušší způsob, jak jej zaregistrovat s minimálním úsilím.

  1. Je zřejmé, že Nginx musí být nainstalován do systému před zahájením kroků v této příručce. Nainstalovat Nginx však nestačí, protože také vyžaduje instalaci geo_ip_module. Společnost Maxmind vydávala své databáze ve formátu dat, ale od doby, kdy byla vydána ve formátu mmdb. Díky tomu Nginx vyžaduje nový geo_ip_module s názvem ngx_http_geoip2_module. Není to však nutné, protože stará databáze dat je stále dostatečná. Pokud nginx není nainstalován, nastavte jej pomocí následujících dvou příkazů.
aktualizace apt-get
apt-get install nginx
  1. Zadejte následující příkaz a ujistěte se, že je nainstalován modul http_geoip.
nginx -V

  1. Existuje několik způsobů, jak získat / vytvořit databázi, která obsahuje IP adresy a jejich příslušné názvy zemí a měst. Nainstalujte databázi geo_ip pomocí následujících příkazů. Použití této metody usnadňuje instalaci databáze geo_Ip v systému. Nejideálnějším způsobem je však stažení nové kopie, protože jsou aktualizovány nejnovějšími informacemi. Použijte tedy jednu ze tří níže uvedených možností. První možnost stačí pro průměrného uživatele, druhánd Možnost je získat nejnovější databázi maxmind, třetí možnost převede databázi mmdb do příslušného formátu datového souboru.
    Je to časově náročné a náročné na zdroje, a proto se nedoporučuje pro slabé servery. Pokud je však stále potřeba aktualizovaná databáze, použijte možnost 2. Šetří čas a peníze při převodu souboru, ale zabezpečení nelze zaručit, protože je převedeno někým jiným, nikoli žádnou oficiální stranou. Možnost 3 vyžaduje 3 balíčky pipů, instalační nástroje, ipaddr, dcryptit. A ke zpracování skriptu používá python 2. Poslední řádek převede archiv ZIP na .datový soubor. I když je zmíněno o převodu formátu souboru mmdb na .dat, zde skutečně převede soubor CSV na soubor .formát datového souboru, a proto vyžaduje geoname2fips.CSV soubor, který je dodáván s balíčkem konverzních souborů.

Možnost 1

apt-get nainstalovat geoip-databázi libgeoip1

Možnost 2

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

Možnost 3

cd / home /
mkdir geolite2legacy /
git clone https: // github.com / sherpya / geolite2legacy
apt-get install python
apt-get nainstalovat python-pip
pip install setuptools
pip install ipaddr
pip nainstalujte dcryptit
cd / usr / share /
mkdir GeoIP /
cd / usr / share / GeoIP /
wget https: // geolit.maxmind.com / download / geoip / databáze / 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. Nakonfigurujte konfigurační soubor Nginx následujícím způsobem. Zadejte příkaz do prvního řádku v terminálu Linux jako obvykle a zkopírujte zbytek řádků do nginx.soubor conf. Ujistěte se, že jméno uvedené v / usr / share / GeoIP / GeoIP.dat odpovídá datovému souboru uloženému ve složce usr / share / GeoIP. I když v následujícím příkladu určuje pouze jednu zemi, lze jako daný příklad zadat více kódů zemí s jedním řádkem na kód země. Seznam kódů zemí, který je k dispozici pro jednotlivé země, naleznete na tomto místě. http: // www.maxmind.com / app / iso3166.
nano / etc / nginx / nginx.konf
geoip_country / usr / share / GeoIP / GeoIP.dat;
mapa $ geoip_country_code $ allow_country
výchozí ano;
LK ne;
  1. Otevřete výchozí soubor pomocí libovolného textového editoru (upřednostňuje se nano, protože se s ním snadno upravuje), poté přidejte obsah od 2nd řádek mezi mezi kdekoli v bloku umístění ve výchozím souboru. Kód funguje tak, že když návštěvník zadá požadavek na webový server, nginx načte jejich IP adresy a porovná se svými záznamy, aby našel příslušný kód země, pokud se shoduje země uvedená v bloku mapy, je mu Proměnná $ allow_country, a tím kontrola $ allow_country umožňuje manipulovat s odpovědí. V této příručce používá ne, a proto je návštěvníkovi odepřeno vidět obsah. Pokud existuje více domén jako .com, .lk, nebo nucuta.com nebo nucuta.net přidejte kód od řádku 3 do každé „domény“.conf soubor také. Pokud je nginx správně nakonfigurován, soubor do příslušné domény se nachází ve složce k dispozici pro weby.
nano / etc / nginx / sites-available / default
if ($ allow_country = no)
návrat 444;
  1. Restartujte server nginx pomocí následujícího příkazu. Dále přístup na webový server z jakékoli srílanské (LK) domény způsobí, že webový server nevrátí nic, jak je vidět na následujících screenshotech. 444 v nginx nepředstavuje nic. Místo toho lze také použít jakýkoli jiný kód, například 302, 301, 404. Pokud je zadáno 302 301, měla by být zadána také adresa URL k přesměrování návštěvníka.
systemctl restart nginx

Závěr

Blokování návštěvníků na základě jejich zeměpisné polohy je pro fungování některých podniků zásadní kvůli různým regionálním pravidlům a předpisům. Nginx tyto potřeby uspokojuje svým modulem geo_ip. Využívá databáze maxmind k vyhledání země podle IP adresy návštěvníka. Databáze funguje s Ipv4 i ipv6. Vzhledem k tomu, že společnost maxmind ukončila svůj starší formát databáze dat, jediným způsobem, jak využít jejich data, je buď převod nového formátu souboru na soubor dat, nebo použití již převedeného formátu nebo použití modulu třetí strany pro Nginx k podpoře formátu souboru mmdb. Skript pythonu, který je zde uveden, je ideální pro převod, i když vidění výsledku chvíli trvá. Maxmind zaručuje přes 99% přesnost při hledání země na základě IP; proto je nezbytným nástrojem pro jakékoli podnikání.

Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...
Hry Nejlepší hry Oculus App Lab
Nejlepší hry Oculus App Lab
Pokud jste vlastníkem náhlavní soupravy Oculus, musíte mít informace o bočním nakládání. Sideloading je proces instalace neukládaného obsahu do náhlav...
Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...