Požadavky: Použijte nginx k blokování některých IP adres, které nemají přístup na webové stránky, jako jsou crawlery, reklamy atd. Nebo z důvodů politiky musíte zablokovat přístup z IP adresy v určité zemi.
Blokovaný přístup specifikovaný pro IP
Nginx poskytuje dva z nejzákladnějších příkazů pro maskování a povolení IP: blokování a povolení povolení, a následovně:
Určte adresář tak, aby blokoval přístup z určených IP adres
V konfiguračním souboru Nginx můžete použít bloky polohy pro porovnání konkrétních cest URL adres. Například chceme povolit maskování v cestách URL začínajících na /foo, které odpovídají všem cestám začínajícím na /foo, jako jsou /foo/bar a /foo/baz/qux atd., a to následovně:
Jestli chcešPřesná shoda /foopoužít následující konfiguraci:
Adresář můžete také porovnat s regexem:
Zablokujte přístup do určené země (regionu).
Někdy chceme umožnit přístup pouze určitým regionům. S vědomím výše uvedených dvou metod zůstává problém, jak získat všechny IP segmenty v určité oblasti. Můžeme ho získat z IP2location. Adresa:Přihlášení k hypertextovému odkazu je viditelné.
Vyberte zemi na levé straně políčka, ve středním poli V4 nebo V6 a vpravo vyberte typ pravidla. Vezměme si například Japonsko:
Stáhni a rozbal, abys získal txt soubor,Smažte první lokaci / { a poslední },Nakonec přidejte řádek povolit vše;Změňte název přípony z .txt na .conf a nahrajte ho na server, přičemž si pamatujte adresář, kde byl umístěn. (např. /usr/local/nginx/conf/nginx.conf/firewall.conf)
Upravte konfigurační soubor Nginx odpovídající webu, například adresář /foo, aby povoloval přístup pouze z nejaponských IP adres:
Pokud chcete, aby to bylo celé na celém webu, můžete například psát do severu nebo http pole:
Poté zadejte následující příkaz pro opětovné načtení konfigurace nginx:
|