Vereisten: Gebruik nginx om bepaalde IP's te blokkeren voor toegang tot websites, zoals crawlers, advertenties, enzovoort. Of om beleidsredenen moet je de toegang van een IP-adres in een bepaald land blokkeren.
Blokkeer gespecificeerde IP-toegang
Nginx biedt twee van de meest basale commando's voor het maskeren en toestaan van IP's: deny to block en allow to allow, als volgt:
Specificeer de map om toegang te blokkeren van opgegeven IP's
In het configuratiebestand van Nginx kun je locatieblokken gebruiken om specifieke URL-paden te matchen. We willen bijvoorbeeld maskering mogelijk maken in URL-paden die beginnen met /foo, waarbij alle URL-paden die met /foo beginnen, zoals /foo/bar en /foo/baz/qux, enzovoort, worden overeenkomen, als volgt:
Als je wiltExacte match /fooOm de volgende configuratie te gebruiken:
Je kunt de map ook koppelen aan regex:
Blokkeer de toegang tot het opgegeven land (regio).
Soms willen we alleen bepaalde regio's toegang geven tot onze website. Met de bovenstaande twee methoden is het resterende probleem hoe je alle IP-segmenten in een bepaald gebied kunt krijgen. We kunnen het via ip2location krijgen. Adres:De hyperlink-login is zichtbaar.
Selecteer het land aan de linkerkant van het vakje, selecteer V4 of V6 in het middelste vak, en selecteer het regeltype rechts. Neem Japan als voorbeeld:
Download en pak uit om het txt-bestand te krijgen,Verwijder de eerste locatie / { en de laatste },Voeg tenslotte een line allow all toe;Verander de naam van het achtervoegsel van .txt naar .conf en upload het naar de server, waarbij je de map onthoudt waar het is geplaatst. (bijv. /usr/local/nginx/conf/nginx.conf/firewall.conf)
Pas het Nginx-configuratiebestand aan dat bij de site hoort, zoals de /foo-directory, zodat alleen toegang is toegestaan van niet-Japanse IP's:
Als je wilt dat het site-breed is, kun je bijvoorbeeld schrijven naar het server of http-veld:
Voer vervolgens het volgende commando in om de nginx-configuratie opnieuw te laden:
|