Статистика для Upstream NginX
При использовании NginX в качестве балансировщика нагрузки появляется вопрос о корректном ведении статистики доставки трафика к серверам из секции Upstream.
К сожалению у Nginx нету встроенного функционала на манер HaProxy. Также этот функционал нельзя добавить путем установки дополнительного модуля с помощью yum или apt-get.
Для того что бы в NginX появилось компилировать из исходников и в ходе компиляции включать сторонний модуль upstream-stats.
Этот модуль совместим с nginx-1.2.2
. Последнюю версию NginX
мне собрать не удалось.
Скачиваем NginX
и распаковываем его:
wget http://nginx.org/download/**nginx-1.2.2**.tar.gz
tar xf nginx-1.2.2.tar.gz
Скачиваем upstream-stats и распаковываем его:
wget /wp-content/uploads/2014/11/ustats.tgz
tar xf ustats.tgz
Копируем файлы в папки NginX
cp -r ustats-read-only/ustats nginx-1.2.2/src/http/modules/
cp ustats-read-only/nginx.patch nginx-1.2.2/
Осталось применить патч и можно переходить к сборке NginX
cd nginx-1.2.2/
patch -p1 -i nginx.patch
Базовая строка конфигурирования выглядит следующим образом:
./configure -prefix=/etc/nginx -user=nginx -group=nginx -with-http_ssl_module **-add-module=src/http/modules/ustats** -http-log-path=/var/log/nginx/
Если Вам нужны дополнительные опции - прочитайте эту статью. В ней же приводится пример init.d скрипта и список нужных для компиляции пакетов.
Для того что бы статистика заработала - добавьте следующие строки в секцию server любого сайта:
location /ustats {
ustats memsize=1m;
ustats_refresh_interval 6000;
ustats_html_table_width 95;
ustats_html_table_height 95;
}