Конфигурационный файл oproxy.conf

Материал из ISPWiki

Перейти к: навигация, поиск

По умолчанию, oProxy, а также утилиты oproxyctl, clusterctl, sitesctl и clusterlogs ищут конфиг в /usr/local/ispmgr/etc/oproxy.conf. Он имеет два вида записей:

  1. Параметр. Имеет имя и значение. Записывается в виде Param имя_параметра "значение"
  2. Что слушать. Имеет в значениях тип протокола и что (какой сокет) слушать.
  3. События. Имеет имя и список обрабатывающих скриптов.

Содержание

Параметры

Существующие параметры (даны значения по умолчанию):

Пути

Param site_disabled_file "/usr/local/ispmgr/etc/cluster_site_disabled.html"

Какую страницу возвращать, если запросили остановленный сайт. В файле поддерживается макрос __SITE__, который заменяется на имя хоста.

Param site_not_found_file "/usr/local/ispmgr/etc/cluster_site_not_found.html"

Какую страницу возвращать, если запросили не существующий сайт. В файле поддерживается макрос __SITE__, который заменяется на имя хоста.

Param sites_list_file "/usr/local/ispmgr/etc/cluster_sites.conf"

Конфиг со списком сайтов кластера. Описание смотрите в статье cluster_sites.conf.

Param nodes_list_file "/usr/local/ispmgr/etc/cluster_nodes.conf"

Конфиг, описывающий узлы кластера. Подробнее см. cluster_nodes.conf

Param command_socket "/tmp/oproxy.sock"

Путь до сокета oProxy. Через него работает утилита oproxyctl.

Param log_file "/var/log/oproxy.log"

Лог-файл.

Param traffic_log_file "/usr/local/ispmgr/var/oproxy-traf.log"

Статистика трафика/нагрузки. Как часто сбрасывать статистику задаётся параметром log_statistics_period.

Param mime_types_file "/etc/mime.types"

Путь до файла, описывающего соответствие расширений файлов их MIME-типам.

Param apache_configs_dir "/etc/apache2/users-conf.d"

Директория, в которой хранятся конфигурационные файлы виртуальных хостов пользователей.

Param apache_binary "/usr/sbin/apache2"

Путь до исполняемого файла веб-сервера Apache.

Таймауты, интервалы

Param log_statistics_period "0"

Как часто сбрасывать статистику по трафику в лог. Задаётся в секундах. Ноль означает "никогда".

Param keepalive_http "5"

Как долго ждать следующего запроса от HTTP-клиента без разрыва соединения. Задаётся в секундах.

Param keepalive_http_backend "60"

Как долго ждать записи/чтения от HTTP-бекенда.

Param keepalive_mysql "120"

Как долго ждать следующего запроса от MySQL-клиента. Задаётся в секундах.

Param keepalive_mysql_backend "600"

Как долго ждать записи/чтения от MySQL-бекенда.

Param log_status_file "/home/httpd-logs/log.status"

Файл для хранения данных о лог-файлах веб-сервера. Необходимо для работы clusterlogs

Обработка соединений

oProxy может слушать несколько сокетов одновременно. Конфигурация сокета каждого сокета задаётся в формате:

Listen тип "сокет"

Тип может быть один из:

  1. mysql — эмулируем MySQL-сервер
  2. http — эмулируем HTTP-сервер
  3. cluster — специальный протокол для запуска команд на сервере
  4. clusterstat — специальный протокол для создания централизованного сервера статистики

Сокет может иметь вид:

  1. "/tmp/mysql.sock" — Слушать UNIX-сокет "/tmp/mysql.sock"
  2. "12.34.56.78:80" — Слушать TCP-сокет на IP 12.34.56.78 на порту 80
  3. "0.0.0.0:80" — Слушать все IP на порту 80

Например:

Listen mysql "0.0.0.0:3306"
Listen mysql "/var/run/mysqld/mysqld.sock"
Listen mysql "/tmp/mysql.sock"
Listen http "0.0.0.0:80"
Listen cluster "0.0.0.0:654"
Listen clusterstat "0.0.0.0:655"

Настройка бэкенд-серверов

Param backend_http_sleep "10"

На сколько секунд метить HTTP-сервер умершим в случае, если не удалось к нему подключиться.

Param backend_mysql_sleep "10"

На сколько секунд метить MySQL-сервер умершим в случае, если не удалось к нему подключиться.

Param mysql_prioritized_nodes "0"

Использовать приоритеты узлов MySQL. Если текущий сервер (т.е. с наибольшим приоритетом из всех доступных) отказывает в обслуживании, будет произведено переключение на сервер с более низким приоритетом. Подробнее смотрите cluster_nodes.conf

Param http_percentage_of_errors "50"

Если процент ответов со статусом 5xx от определенного веб-сервера превысит это число, веб-сервер будет считаться сбойным.

Param http_errors_watch_interval "30"

Счётчик ошибок бэкендов будет сбрасываться в ноль раз в указанное количество секунд. Таким образом, процент из параметра http_percentage_of_errors применяется только к текущей статистике.

Param http_errors_down_sleep "10"

На сколько секунд метить HTTP-сервер умершим в случае, если для него накопилось слишком много ошибок. Смотрите также параметры http_percentage_of_errors и http_errors_watch_interval.

Параметры журнала

Param log_http_host_not_found "1"

Писать в лог информацию о запросах несуществующих сайтов.

Param log_http_host_disabled "0"

Писать в лог информацию о запросах к выключенным сайтам.

Param log_http_protocol_errors "0"

Писать в лог ошибки протокола HTTP.

Param log_mysql_user "-"

Писать в лог отладочную информацию об обработке запросов от указанного MySQL-пользователя. Если указать пустую строку — будет журналироваться отладочная информация до момента авторизации пользователя.

Кэш дескрипторов

Param fhcache_size "0"

Сколько файловых дескрипторов статических файлов должен держать в кэше каждый из рабочих процессов.

Param fhcache_timeout "30"

Сколько максимум секунд считать закэшированный файловый дескриптор актуальным. Если файл был открыт более указанных секунд назад, он будет открыт заново.

Прочие параметры

Param worker_count "2"

Сколько рабочих процессов запускать.

Param master_password "password"

Пароль для входящих соединений по соединению типа cluster и clusterstat.

Param direct_send_regexp "^$"

Регулярное выражение, описывающее URI файлов, которые можно отправлять напрямую. Значение по умолчанию запрещает отправлять файлы напрямую.

Param default_mime_type "application/binary"

MIME-тип по умолчанию. Он будет использован для файлов, для которых не нашлось соответствия в файле, указанном в параметре mime_types_file

Param use_sendfile "1"

Использовать ли для отправки статики вызов ядра sendfile(). Заметно сокращает использование CPU при отправке файлов напрямую.

Param accept_http_ranges "1"

Разрешить докачку файлов, отдаваемых напрямую (заголовок "Range" HTTP). Поддерживается только один диапазон в одном запросе:

  • Range: bytes=100-199поддерживается (запрос 100 байт из середины файла)
  • Range: bytes=200-поддерживается (запрос с 200-го байта и до конца)
  • Range: bytes=-10поддерживается (запрос последних 10 байт файла)
  • Range: bytes=10-20,30-40не поддерживается
Param max_http_cache_age "86400"

На сколько секунд разрешить браузерам и удалённым прокси-серверам кэшировать напрямую отдаваемые файлы.

Param max_mysql_query_length_save "200"

Сколько начальных байт MySQL-запроса писать в лог. Подробнее см. OpQL.

Param update_logs_period "5"

Как часто clusterlogs должен отправлять изменения логов Apache на собирающий сервер. Задаётся в секундах.

Param logs_server "IP:порт"

Адрес и порт, на котором oProxy слушает соединение типа cluster. Сюда clusterlogs будет отправлять изменения логов Apache

Param max_open_http_logs "256"

Максимум логфайлов сайтов,которые должен держать каждый рабочий процесс oProxy открытым.

Param max_open_files "1024"

Максимальное количество открытых файловых дескрипторов на каждый рабочий процесс.

Param bind_interface "eth0"

Интерфейс, на который oproxyctl будет привязывать IP-адреса, необходимые для работы веб-серверов.

Param exec_on_start ...

Таким образом, можно задать команды на языке OpQL, которые будут выполнены сразу после запуска oProxy. Подробнее см. OpQL и oproxyctl.

Param dump_file "/usr/local/ispmgr/var/rules.dump"

Разрешить сохранение и восстановления правил 'reset' и 'query' при остановке и запуске oProxy соответственно.

События

Задаются в виде:

Event ТИП_СОБЫТИЯ {
  Exec ТАЙМАУТ "/путь/до/обрабатывающего/скрипта";
  Exec ТАЙМАУТ "/путь/до/обрабатывающего/скрипта";
  ...
};

В качестве ТИП_СОБЫТИЯ доступны:

mysql_server.down
Скрипты данного события вызываются в случае недоступности MySQL-сервера.
webserver.down
Скрипты этого события вызываются в случае недоступности одного из веб-серверов.

ТАЙМАУТ задается в секундах и обозначает максимальное время ожидания завершения процесса. В случае, если он не завершится за указанное количество секунд, ему будет послан сигнал SIGKILL.

На STDIN скриптам передаётся дополнительная информация в виде XML.

Была ли эта информация полезной? Да | Нет
Личные инструменты