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

Материал из ISPWiki

(Перенаправлено с Cluster nodes.conf)
Перейти к: навигация, поиск

Каждый узел кластера описывается следующим образом:

Node <IP> { параметры узла ... };

где <IP> — уникальный IP-адрес узла.

Содержание

Параметры узла

На текущий момент поддерживается только один параметр: Role, он может быть указан несколько раз. Описывается следующим образом:

Role <имя роли> { параметры роли ... };

где <имя роли> — любые символы из диапазонов a-z, A-Z, 0-9. Ролей может быть описано любое количество с любыми именами. Однако есть несколько ролей, предназначенных для внутреннего использования.

Предопределённые роли

ClusterCtl

Роль описывает возможность доступа по протоколу cluster (см. oproxy.conf). Описание:

Role ClusterCtl {
  Password "secret";
  Port 654;
  AcceptLogs yes;
};

Здесь:

Password
Пароль для доступа.
Port
Порт, на котором oProxy слушает протокол cluster.
AcceptLogs
Принимать логи HTTP.

FrontendHTTP

На узле, где указана эта роль, oProxy будет запущен в режиме проксирования HTTP. В роли указываются параметры проксирования HTTP.

Role FrontendHTTP {
  Listen "0.0.0.0:80";
  KeepAliveTimeout 30;
  BackendConnectTimeout 10;
  BackendDownRetryTime 10;
  HttpProtocolTimeout 120;
  HttpsProtocolTimeout 120;
  DisabledFile "/usr/local/ispmgr/etc/cluster_site_disabled.html";
  NotFoundFile "/usr/local/ispmgr/etc/cluster_site_not_found.html";
  AllBackendsDownFile "/usr/local/ispmgr/etc/cluster_all_backends_down.html";
  LogHostNotFound on;
  LogHostDisabled on;
  LogProtocolErrors on;
  MaxOpenHttpLogs 10;
  EnableSendfile on;
  FhCacheSize 10;
  FhCacheTimeout 10;
  ErrorsWatchInterval 30;
  ErrorsWatchPercent 50;
  ErrorsWatchSleep 10;
};
Listen
Адрес сокета. Путь до Unix-сокета или адрес в формате <IP:Port>.
KeepAliveTimeout
Время ожидания следующего запроса в одном соединении.
BackendConnectTimeout
Время ожидания соединения в секундах.
BackendDownRetryTime
Время ожидания следующей проверки.
HttpProtocolTimeout
Время ожидания данных по протоколу HTTP.
HttpsProtocolTimeout
Время ожидания данных по протоколу HTTPS.
DisabledFile
Файл возвращаемый на попытку открыть отключенный сайт.
NotFoundFile
Файл возвращаемый на попытку открыть не существующий сайт.
AllBackendsDownFile
Файл возвращаемый на попытку открыть не сайт для которого нет активных бэкэнд-серверов.
LogHostNotFound
Журналировать информацию об обращениях к не найденным сайтам.
LogHostDisabled
Журналировать информацию об обращениях к отключенным сайтам.
LogProtocolErrors
Журналировать ошибки протокола.
MaxOpenHttpLogs
Размер кэша логов HTTP.
EnableSendfile
Использовать вызов ядра sendfile().
FhCacheSize
Размер кэша файловых дескрипторов.
FhCacheTimeout
Время сброса кэша.
ErrorsWatchInterval
Интервал просмотра ошибок HTTP.
ErrorsWatchPercent
Процент предела ошибок HTTP.
ErrorsWatchSleep
Время проверки HTTP.

BackendHTTP

Роль указывает, что на узле находится один или несколько веб-серверов Apache.

Role BackendHTTP {
  Port 80;
  MaxConnections 1000;
  PercentOfTotalConnections 100;
  WebServer 10.0.1.1 "/etc/apache2/configs/10.0.1.1.conf" "/etc/apache2/webservers-conf.d/10.0.1.1" {
    DefaultForNewUsers 1;
  };
};

Возможные параметры роли:

Port
Порт, на котором работают веб-серверы.
MaxConnections
Лимит одновременного количества соединений, отправляемых oProxy на веб-серверы данного узла.
PercentOfTotalConnections
Процент одновременных соединений на веб-серверы данного узла от общего количества одновременных соединений на все узлы. По умолчанию, 100.
WebServer
Описывание веб-сервера. Данный параметр может быть указан несколько раз.

WebServer

Описание каждого вебсервера имеет следующий формат:

WebServer <IP> "/путь/до/конфигурационного/файла" "/путь/до/директории/с/включаемыми/файлами" { параметры веб-сервера ... };

Параметры веб-сервера возможны следующие:

DefaultForNewUsers
Указывает, что данный веб-сервер будет использован для размещения новых пользователей.

FrontendMySQL

На узле, где указана эта роль, oProxy будет запущен в режиме проксирования MySQL. В роли указываются параметры проксирования MySQL.

Role FrontendMySQL {
  Listen "0.0.0.0:3306";
  Listen "/tmp/mysql.sock";
  Listen "/var/run/mysqld/mysqld.sock";
  KeepAliveTimeout 20;
  BackendConnectTimeout 600;
  BackendDownRetryTime 10;
  MaxSaveQueryLength 200;
};
Listen
Адрес сокета. Путь до Unix-сокета или адрес в формате <IP:Port>.
KeepAliveTimeout
Время ожидания следующего запроса в одном соединении.
BackendConnectTimeout
Время ожидания соединения в секундах.
BackendDownRetryTime
Время ожидания следующей проверки.
MaxSaveQueryLength
Длина сохраняемого SQL.

BackendMySQL

Данная роль указывает, что описываемый узел является сервером-бэкендом MySQL.

Role BackendMySQL {
  Port 3307;
  Enabled 1;
  Priority 0;
  MaxConnections 10000;
}
Port
Порт, к которому привязан сервер MySQL.
Enabled
Состояние MySQL сервера. В случае непредвиденной остановки MySQL сервера данная опция автоматически выставляется в "0" и oProxy переключается на другой доступный сервер.
Priority
Приоритет использования сервера MySQL. По умолчанию используется сервер с наименьшим приоритетом.
MaxConnections
Лимит одновременного количества соединений, отправляемых oProxy на веб-сервера данного узла.

Описание ролей

В этом же файле описываются общие параметры ролей. Например, какие скрипты необходимо запустить или остановить на серверах, обрабатывающих ту или иную роль. Запуском и остановом скриптов ролей управляет утилита clusterctl.

Формат записи

Нижеприведенные записи должны быть описаны на верхнем уровне конфигурационного файла, т.е. за пределами Node { ... }

Role BackendHTTP {
        Start "/usr/local/ispmgr/etc/cluster_roles/init.d/oproxy start";
        Start "/usr/local/ispmgr/etc/cluster_roles/init.d/HTTP start";

        Stop "/usr/local/ispmgr/etc/cluster_roles/init.d/HTTP stop";
        Stop "/usr/local/ispmgr/etc/cluster_roles/init.d/oproxy stop";
};

Все скрипты запускаются в порядке их описания. То есть, в этом примере при старте сначала будет запущен oproxy-mysql, затем HTTP. При остановке они будут запущены в обратном порядке.

Предназначение ролей

Роли определяют, какие сервисы на каких узлах должны быть запущены. Для запуска ролей текущего узла используйте

/usr/local/ispmgr/sbin/clusterctl --node LOCAL start

Для остановки: /usr/local/ispmgr/sbin/clusterctl --node LOCAL stop

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