VeryNginx — это Nginx, со встроенным WAF, созданный на основе OpenResty. С помощью удобной панели мы получаем доступ к некоторой статистике и настройкам WAF на веб-сервере.
Установка и запуск.
Ставится достаточно просто (ставить будем на CentOS), но перед установкой нужно добавить в систему несколько пакетов:
# yum install git wget make gcc pcre-devel openssl-devel
Далее, ставим сам VeryNginx. Установка проста и сводится к запуску одного скрипта. OpenResty, при этом, будет установлен автоматически:
# cd /usr/local/src/ # git clone https://github.com/alexazhou/VeryNginx # cd VeryNginx/ # python install.py install
По окончанию процесса сборки и установки, мы увидим сообщение об успешном завершении:
### copy VeryNginx files ... cp -r -f ./verynginx /opt/verynginx cp nginx config file to openresty cp -f ./nginx.conf /opt/verynginx/openresty/nginx/conf/ chmod -R 777 /opt/verynginx/verynginx/configs *** All work finished successfully, enjoy it~
Запуск, остановка и перезапуск сервера выполняется командами:
# /opt/verynginx/openresty/nginx/sbin/nginx # /opt/verynginx/openresty/nginx/sbin/nginx -s stop # /opt/verynginx/openresty/nginx/sbin/nginx -s reload
Доступ в панель с дефолтными логином и паролем verynginx / verynginx осуществляется по адресу:
http://1.2.3.4/verynginx/index.html
Панель VeryNginx.
Сразу же после доступа в панель, имеет смысл перейти в раздел Config > System > User и изменить данные для входа. После, можно начать знакомство с ней.
Вкладка Status отобразит статистику сервера — частоту запросов, трафик, TCP соединения и время ответа. Вкладка Summary отобразит сводную информацию по запросам и позволит сделать выборку по нужным параметрам.
Основная же настройка, происходит во вкладке Config. Здесь в разделе Basic > Matcher мы можем создать правила, на основе запросов к серверу. В рамках одного правила можно задать одно или несколько условий. Запрос будет попадать под действие правила, как только заданные для него условия будут выполнены.
В Basic > Response мы создаём шаблоны ответов сервера, которые будут использоваться в той или иной ситуации.
Создав нужные нам шаблоны и правила, переходим в раздел Custom action, где нам будет доступна возможность настройки действий на основе созданных ранее условий.
Так например, мы можем указать типа подключения (http\https), при котором будет использоваться тот или иной набор правил, указать какие правила будут использоваться при редиректе (сам редирект так же можно заранее обозначить) и реврайте. Здесь же, имеется возможность применять правила относительно частоты запросов, доступна активация верификации браузера, и фильтрация запросов к веб-серверу на основе заданных ранее шаблонов.
В разделе Backend администратору доступна настройка работы с бекендом, с учётом типа бекенда и созданных правил. В Config > Summary мы можем активировать ведение сводной статистики и сборщик, который будет собирать данные по нужным нам правилам.
Заключение.
Что же в итоге? Быстрый, прокачанный, имеющий широкую функциональность веб-сервер, со встроенной возможностью фильтрации и обработки запросов. Решение, конечно же, не общее, на хостинг его вряд ли будут ставить (хотя разработчики утверждают, что при должном подходе можно настроить работу и со своей версией веб-сервера), однако для каких-то частных решений, VeryNginx может оказаться полезен. Как минимум, о существовании такого продукта стоит знать.