Данный модуль предназначен для отслеживания и контроля конфигурации upstream в nginx.
Модуль позволяет просматривать конфигурацию upstream в режиме реального времени, а также изменять её онлайн без необходимости перезапускать nginx или редактировать файл конфигурации nginx.
Зависимости модуля: Lua 5.2 и Lua-cjson.
Компиляция nginx (версия: nginx-1.9.8):
--add-module=path/to/src/directory
;--with-cc-opt="-I /usr/include/lua5.2"
;--with-ld-opt="-l lua5.2 -L /usr/lib/i386-linux-gnu"
.Копирование содержимого каталога html в каталог nginx html.
Добавьте следующее в файл nginx.conf:
location ~^/upstreams {
upstreams_admin on;
auth_basic "valid user";
auth_basic_user_file /usr/local/nginx/conf/oschina_pw;
ui_lua_file /usr/local/nginx/html/ui.lua;
timeout 3;
}
Доступ к странице через браузер по адресу http://yourdomian/upstreams.
upstreams_admin
Включает или отключает функцию мониторинга upstream. Для включения установите значение «on», для отключения — «off».
Пример: upstreams_admin on
.
auth_basic
См. соответствующую инструкцию nginx.
auth_basic_user_file
См. соответствующую инструкцию nginx.
ui_lua_file
Путь к файлу сценария пользовательского интерфейса (файл сценария Lua). Если не указано, по умолчанию используется путь /usr/local/nginx/html/ui.lua
.
Пример: ui_lua_file /usr/local/nginx/html/myui.lua
.
timeout
Время ожидания для обновления конфигурации upstream (в секундах). По умолчанию — 3 секунды.
Пример: timeout 5
.
GET /upstreams — доступ через веб-клиент.
(Lua) write_html(data) — обратный вызов на сервере nginx.
POST /upstreams_update — запрос с параметрами:
{
method:'update',
backend:?,
ip_hash:?,
keepalive:?
}
Ответ:
response:
{
code:?,
message:'?'
}
Описание:
— Ответ в формате JSON.
— method
: указывает тип запроса, значение фиксировано как строка «update», что означает обновление конфигурации ip_hash и keepalive для backend.
— backend
: индекс backend (начиная с 0), который соответствует порядку бэкэндов в файле конфигурации nginx.
— ip_hash
: новое значение ip_hash, может быть только 0 или 1.
— keepalive
: новое значение keepalive, 0 или положительное целое число, где 0 означает отключение keepalive, а положительное число — количество кэша keepalive (см. соответствующую инструкцию aginx).
— code
: код возврата.
0 — успешное обновление конфигурации upstream.
1 — обработка сервера превысила время ожидания.
2 — ошибка обновления.
3 — сервер занят.
4 — ошибка параметров запроса.
5 — неизвестная ошибка.
— message
: сообщение, соответствующее коду возврата.
POST /upstreams_edit — запрос с параметрами:
{
method:'edit',
backend:?,
server:?,
weight:?,
backup:?,
max_fails:?,
fail_timeout:?
}
Ответ:
response:
{
code:?,
message:'?'
}
Описание:
— Ответ в формате JSON.
— method
: указывает тип запроса, значение фиксировано как строка «edit», что означает обновление конфигурации определённого сервера в backend.
— backend
: индекс backend (начиная с 0), соответствующий порядку бэкэндов в файле конфигурации nginx.
— server
: индекс сервера (начиная с 0), соответствующий порядку серверов в одном из бэкэндов файла конфигурации nginx.
— weight
: см. соответствующую инструкцию aginx.
— backup
: указывает, является ли сервер резервным, может быть 0 или 1, где 0 — не резервный, а 1 — резервный.
— max_fails
: см. соответствующую инструкцию aginx.
— fail_timeout
: см. соответствующую инструкцию aginx.
— code
: код возврата.
0 — успешное обновление конфигурации upstream.
1 — обработка сервера превысила время ожидания.
2 — ошибка обновления.
3 — сервер занят.
4 — ошибка параметров запроса.
5 — неизвестная ошибка.
— message
: сообщение, соответствующее коду возврата.
POST /upstreams_enable — запрос с параметрами:
{
method:'enable',
backend:?,
server:?,
down:?
}
Ответ:
response:
{
code:?,
message:'?'
}
Описание:
— Ответ в формате JSON.
— method
: указывает тип запроса, значение фиксировано как строка «enable», что означает запуск или остановку определённого сервера в upstream.
— backend
: индекс backend (начиная с 0), соответствующий порядку бэкэндов в файле конфигурации nginx.
— server
: индекс сервера (начиная с 0), соответствующий порядку серверов в одном из бэкэндов файла конфигурации nginx.
— down
: указывает, остановлен ли сервер, может быть 0 или 1, где 0 — запуск, а 1 — остановка.
— code
: код возврата. 0. Успешное обновление конфигурации upstream.
message: текст сообщения, соответствующий коду возврата.
Вы можете настроить собственный интерфейс ответа с помощью API следующим образом:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )