Вимоги: Використовуйте 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:
|