Поиск по сайту:

Как заблокировать доступ к Nginx, кроме определенного IP-адреса


Создавая этот сайт, я хотел поработать над статьями и настроить дизайн перед тем, как выпустить его для широкой публики, поэтому мне нужен был простой способ не пускать всех остальных, пока все не будет готово к работе. Поэтому для этого я использовал функцию контроля доступа nginx.

Вместо этого было бы более безопасно настроить HTTP-аутентификацию nginx и запросить имя пользователя и пароль, и это также позволило бы мне более легко использовать свои мобильные устройства для доступа к сайту. Но если вы когда-либо использовали HTTP-аутентификацию, вы знаете, что постоянно вводить свои учетные данные крайне раздражает, особенно на мобильных устройствах.

Поэтому вместо этого я использовал простое правило разрешения IP-адресов для моего офисного IP-адреса и заблокировал все остальное.

Откройте файл nginx.conf (или любой другой файл конфигурации nginx, который вы используете для своего конкретного сайта) и добавьте следующее либо в блок вашего сервера, либо в блок определенного местоположения, в зависимости от того, насколько детализированным вы хотите получить блок.

Чтобы разрешить диапазон IP-адресов:

allow   10.1.1.0/24;

Или разрешить только один IP:

allow   10.1.1.2

А затем ниже, чтобы заблокировать всех остальных:

deny all;

Таким образом, вы получите блок сервера или местоположения, который выглядит примерно так:

server {
  listen  80;
  server_name www.cloudsavvyit.com;

  allow 10.1.1.2;
  deny all;

Это действительно так просто. Теперь вам нужно перезагрузить сервер nginx, что вы можете сделать с помощью этой команды для серверов Ubuntu или Debian:

service nginx reload

Или вы можете перезагрузить напрямую, используя исполняемый файл nginx, при условии, что он находится в том же месте, что и мой (в противном случае измените путь)

/usr/local/nginx/sbin/nginx -s reload

Аргумент -s сообщает nginx, что вы собираетесь отправить «сигнал», и этот сигнал — «перезагрузка», который изящно перезагружает сервер, не вызывая большого количества проблем.