Требования: Используйте 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:
|