OProxy
Материал из ISPWiki
oProxy — прокси-сервер с функцией балансировки нагрузки и обеспечения отказоустойчивости, работающий совместно с ISPmanager Cluster. Основные функции:
- Проксирование HTTP-трафика, балансировка нагрузки между серверами, обеспечение отказоустойчивости (прозрачное автоматическое отключение/подключение упавших узлов).
- Обработка статических запросов без участия Apache.
- Проксирование Mysql-трафика, балансировка, обеспечение отказоустойчивости.
- Точный подсчёт входящего и исходящего HTTP трафика по отдельным сайтам, подсчёт количества запросов и суммарного времени ответа.
- Точный подсчёт MySQL трафика по отдельным пользователям, подсчёт количества запросов, суммарного времени ответа.
- Выполнение команд (см. clusterctl)
Содержание |
Принцип работы
Утилита слушает заданные конфигурационным файлов TCP- или UNIX-сокеты (см. oproxy.conf). Далее из cluster_nodes.conf (см. clusterctl) выбираются все узлы, для которых задана специальная роль HTTP или MySQL соответственно. Для всех узлов у прокси имеется статистика, сколько сейчас узел обрабатывает запросов. Выбирается узел, обрабатывающий их меньше всего. Делается попытка подключения к нему. Если попытка не удалась — узел на несколько секунд (задаётся конфигурационным файлом) метится как down и делается попытка подключения к следующему. И так далее. И только в случае, если все узлы в дауне, соединение сбрасывается.
Помимо проксирования HTTP и MySQL, утилита умеет слушать специальный командный сокет, на котором по паролю клиент может от рута запустить любую команду. См. clusterctl.
Конфигурация
По умолчанию, oProxy ищет конфиг в /usr/local/ispmgr/etc/oproxy.conf. Подробности смотрите в статье oproxy.conf.
Опции запуска
Usage: oproxy [keys] Keys: --config Path to configuration file. Default is /usr/local/ispmgr/etc/oproxy.conf --version Print version and exit. -help Display this list of options --help Display this list of options
Управление прокси-сервером
Для управления прокси-сервером разработан специальный язык OpQL и утилита oproxyctl. Например, останавливать oProxy лучше всего командой:
/usr/local/ispmgr/sbin/oproxyctl 'stop daemon'
В этом случае, корректно будет завершена работа (сброшена статистика, удалены все UNIX-сокеты и т.д.).
Трафик
Если значение log_statistics_period в oproxy.conf больше нуля, статистика по трафику сохраняется в файл /usr/local/ispmgr/var/oproxy-traf.log. В ином случае, её можно посмотреть командами:
/usr/local/ispmgr/sbin/oproxyctl 'show traffic http'
или
/usr/local/ispmgr/sbin/oproxyctl 'show traffic mysql'
В случае, если настроено сохранение статистики в файл, эти команды покажут статистику по трафику с момента последнего сохранения её в файл.
