Конфигурационный файл cluster nodes.conf
Материал из ISPWiki
Каждый узел кластера описывается следующим образом:
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
