Изисквания: Използвайте nginx, за да блокирате някои IP адреси от достъп до уебсайтове, като краулъри, реклами и др. Или поради политически причини, трябва да блокирате достъп от IP адрес в определена държава.
Блокиран IP достъп
Nginx предоставя две от най-основните команди за маскиране и разрешаване на IP адреси: отказ да блокира и позволи на разрешаване, както следва:
Задайте директория за блокиране на достъпа от определени IP адреси
В конфигурационния файл на Nginx можете да използвате локационни блокове, за да съответствате на конкретни URL пътища. Например, искаме да активираме маскиране в URL пътища, които започват с /foo, съвпадайки всички URL пътища, започващи с /foo, като /foo/bar и /foo/baz/qux и др., както следва:
Ако искашТочно съвпадение /fooда използваме следната конфигурация:
Можете също да съпоставите директорията с regex:
Блокирайте достъпа до посочената държава (регион).
Понякога искаме да позволим достъп само на определени региони до нашия уебсайт. Като знаем горните два метода, оставащият проблем е как да се получат всички IP сегменти в определен регион. Можем да го вземем от ip2location. Адрес:Входът към хиперлинк е видим.
Изберете държавата от лявата страна на кутията, изберете V4 или V6 в средното поле и изберете типа правило вдясно. Вземете Япония за пример:
Изтеглете и разархивирайте, за да получите txt файла,Изтрий първото място / { и последното },Накрая, добавете линия "позволи всичко";Промени името на суфикса от .txt на .conf и го качи на сървъра, като си спомняш директорията, където е поставен. (напр. /usr/local/nginx/conf/nginx.conf/firewall.conf)
Модифицирайте конфигурационния файл на Nginx, съответстващ на сайта, например директорията /foo, за да позволява достъп само от неяпонски IP адреси:
Ако искате да е на целия сайт, можете да пишете в полето sever или http, например:
След това въведете следната команда, за да презаредите конфигурацията на nginx:
|