Переадресация всех тестовых сайтов если ip НЕ из белого списка.

Обсуждение установки и настройки поддерживаемых вебсерверов, а также работы с ними.
Ответить
Pavel Lubenskiy
Сообщения: 9
Зарегистрирован: Пн янв 06, 2020 7:45 am

Переадресация всех тестовых сайтов если ip НЕ из белого списка.

Сообщение Pavel Lubenskiy » Пт июн 25, 2021 10:58 am

Тружусь в одной веб-студии,
Есть сайт компании, а на поддомене крутятся все dev версии сайтов.
Есть потребность чтобы посторонние (в том числе и боты) не смогли попадать на эти сайты, но были перенаправлены на сайт компании (например на страницу где предлагается услуга по созданию сайтов).
При этом можно было бы добавлять в белый список IP заказчиков, чтобы они смогли увидеть предрелизную версию сайтов.


Версия панели 1.0926
Centos 7-6.1810
Работает связка APACHE 2.4 (backend) + NGINX (frontend) + NodeJS (optional)

Что уже пробовал
модуль Nginx geo
https://serverfault.com/questions/38064 ... ecial-page

Код: Выделить всё

geo $bad_user {
  default 0;
  1.2.3.4/32 1;
  4.3.2.1/32 1;
}

server {
  if ($bad_user) {
    rewrite ^ http://www.example.com/noscrape.html;
  }
}
но не силён в конфигах nginx (прописал код из примера в /etc/nginx/nginx.conf)
во-первых -- nginx -t ругается про то, что конструкция "if" недопустима в этом блоке
во-вторых пробовал добавить блок условия к конкретному хосту, но он его игнорит.

Подскажите, может кто то уже с этим сталкивался или как это решить.

Pavel Lubenskiy
Сообщения: 9
Зарегистрирован: Пн янв 06, 2020 7:45 am

Re: Переадресация всех тестовых сайтов если ip НЕ из белого списка.

Сообщение Pavel Lubenskiy » Пн июл 05, 2021 11:14 am

Решением стало редактирование конфига

Код: Выделить всё

nginx/etc/nginx/nginx.comf
в начало секции http добавляем вот такую директиву

Код: Выделить всё

geo $bad_user {
  default 1;
  #по-умолчанию все ip адреса считаются не доверенными (логическая единичка)
 
  ваш_девелоперский_ip 0; 
  #пробел и после него ноль указывает на то что этот ip соответствует ложному срабатыванию модуля
  ip_вашего_заказчика 0;
  #если нужно показать результат работы -- открываем доступ по ip заказчику
}
Затем вносим фикс в шаблон наново созданных хостов

Код: Выделить всё

/etc/brainy/vhosts/vhosts.tpl
Примерно на 326 строке (сразу после открытия блока server)

Код: Выделить всё

if ($bad_user) { 
       rewrite ^ https://сайт-заглушка-для-неразрешенных-айпишников/;
    }
    

Ответить