Wymagania: Użyj nginx do blokowania niektórych IP przed dostępem do stron internetowych, takich jak crawlery, reklamy itp. Albo ze względów politycznych musisz zablokować dostęp z adresu IP w danym kraju.
Dostęp do IP określony przez blok
Nginx oferuje dwa z najbardziej podstawowych poleceń maskowania i dopuszczania adresów IP: deny to block oraz allow to allow (pozwól na pozwolenie), w następujący sposób:
Określ katalog, aby blokować dostęp z określonych adresów IP
W pliku konfiguracyjnym Nginx możesz używać bloków lokalizacji, aby dopasować konkretne ścieżki URL. Na przykład chcemy włączyć maskowanie w ścieżkach URL zaczynających się na /foo, odpowiadając wszystkim ścieżkom URL zaczynającym się na /foo, takim jak /foo/bar i /foo/baz/qux itd., w następujący sposób:
Jeśli chceszDokładne dopasowanie /fooaby użyć następującej konfiguracji:
Możesz też dopasować katalog do regexu:
Zablokuj dostęp do określonego kraju (regionu).
Czasami chcemy pozwolić tylko wybranym regionom na dostęp do naszej strony. Znając powyższe dwie metody, pozostałym problemem jest to, jak umieścić wszystkie segmenty IP w danym regionie. Możemy to pobrać z ip2location. Adres:Logowanie do linku jest widoczne.
Wybierz kraj po lewej stronie pola, wybierz V4 lub V6 w środkowym polu, a typ reguły po prawej. Weźmy na przykład Japonię:
Pobierz i rozpakuj, aby pobrać plik txt,Usuń pierwszą lokalizację / { i ostatnią },Na koniec dodaj linię "pozwól wszystkim";Zmień nazwę sufiksu z .txt na .conf i wgraj ją na serwer, pamiętając katalog, w którym została umieszczona. (np. /usr/local/nginx/conf/nginx.conf/firewall.conf)
Zmodyfikuj plik konfiguracyjny Nginx odpowiadający stronie, na przykład katalog /foo, aby umożliwiał dostęp tylko z innych adresów IP niż japońskie:
Jeśli chcesz, aby to było dla całej lokalizacji, możesz zapisać do serwera lub pola http, na przykład:
Następnie wprowadź następujące polecenie, aby wczytać konfigurację nginx:
|