Krav: Brug nginx til at blokere nogle IP'er fra at få adgang til hjemmesider, såsom crawlere, annoncer osv. Eller af politiske årsager skal du blokere adgang fra en IP-adresse i et bestemt land.
Blokér specificeret IP-adgang
Nginx giver to af de mest grundlæggende kommandoer til maskering og tillade IP'er: afvis for at blokere og tillad at tillade, som følger:
Angiv mappen for at blokere adgang fra angivne IP'er
I Nginx' konfigurationsfil kan du bruge lokationsblokke til at matche specifikke URL-stier. For eksempel ønsker vi at aktivere maskering i URL-stier, der starter med /foo, og matche alle URL-stier, der starter med /foo, såsom /foo/bar og /foo/baz/qux osv., som følger:
Hvis du vilPræcist match /fooFor at bruge følgende konfiguration:
Du kan også matche mappen med regex:
Bloker adgangen til det angivne land (region).
Nogle gange vil vi kun tillade bestemte regioner adgang til vores hjemmeside. Når man kender de to ovenstående metoder, er det resterende problem, hvordan man får alle IP-segmenter i et bestemt område. Vi kan få det fra ip2location. Adresse:Hyperlink-login er synlig.
Vælg landet i venstre side af boksen, vælg V4 eller V6 i midterboksen, og vælg regeltypen til højre. Tag Japan som eksempel:
Download og udpak for at få txt-filen,Slet den første placering / { og den sidste },Tilføj endelig en linje allow all;Skift navnet på suffikset fra .txt til .conf og upload det til serveren, mens du husker den mappe, hvor det blev placeret. (f.eks. /usr/local/nginx/conf/nginx.conf/firewall.conf)
Ændr Nginx-konfigurationsfilen, der svarer til stedet, såsom /foo-kataloget, så den kun tillader adgang fra ikke-japanske IP'er:
Hvis du vil have det site-dækkende, kan du skrive til server- eller http-feltet, for eksempel:
Indtast derefter følgende kommando for at genindlæse nginx-konfigurationen:
|