Проект возник из-за необходимости в 7-уровневом балансировщике нагрузки, но коммерческие балансировщики нагрузки оказались слишком дорогими и сложными в использовании. Не было также особенно любимых (красивых, удобных) открытых продуктов. Как большой Ops, я не мог ничего сделать?
- Проект основан на Django + AdminLTE, протестирован на Ubuntu 18.04; для обеспечения хорошей совместимости рекомендуется использовать браузер Chrome.
- Для удобства последующего расширения рекомендуется использовать Tengine вместо Nginx.
Статус вышестоящего сервера (HTTP/TCP)
<BASE_URL>:9191/up_status?format=[prometheus|json|html]
Статистика запросов (HTTP)
<BASE_URL>:9191/req_status_http/format/[prometheus|json|html]/
Статистика запросов (TCP)
<BASE_URL>:9191/req_status_tcp/format/[prometheus|json|html]/
Обновлён Python до версии 3.9.
Обновлён Tengine до версии 3.1.0.
Обновлён LuaJIT до версии 20231006.
Обновлено Alpine до версии 3.18.4.
Частично обновлены зависимости Python.
Улучшено: перед сохранением конфигурации выполняется проверка с помощью nginx -t, и если есть ошибка, конфигурация не будет применена.
Улучшено: состояние страницы разделено на конфигурацию и состояние процесса, теперь ошибки конфигурации не влияют на состояние Nginx, а отображаются как «ошибка конфигурации».
Улучшено: при запуске службы конфигурация будет повторно сгенерирована и применена, что предотвратит сбой запуска из-за неправильной конфигурации.
Улучшено: сохранение или повторное применение конфигурации разрешено без применения, чтобы предотвратить сбой из-за многократного нажатия.
Улучшено: логика сохранения конфигурации изменена, теперь только после неудачной проверки правил конфигурация будет перерисована, что значительно ускорит сохранение при большом количестве правил.
Улучшено: по умолчанию отключена подробная информация о сервере ошибок.
Добавлено: добавлена функция «повторного применения конфигурации», которая позволяет вручную перерисовывать или перезагружать конфигурацию Nginx, по умолчанию перерисовывая, выбирая отмену, можно выбрать только перезагрузку конфигурации.
Добавлено: в stream-модуле proxy_timeout установлен на 1800s.
Добавлено: check_shm_size установлен на 32M.
Добавлено: количество строк в списке правил можно настроить от 10 до 100.
Добавлено: поддержка ARM-архитектуры, pull-образцы могут использовать параметр --platform linux/arm64
.
Добавлено: HTTP-тип правила, динамическое обнаружение доменного имени вышестоящего узла реализовано с использованием модуля ngx_upstream_jdomain, который предотвращает изменение IP-адреса вышестоящего узла, поддерживает только протокол HTTP.
Добавлено: модуль активного мониторинга работоспособности ngx_healthcheck_module заменён для решения проблемы совместимости с модулем динамического обнаружения доменных имён, а также добавлена функция мониторинга работоспособности для правил TCP.
Исправлено: проблема с тем, что статус SSL не влияет на открытие переключателя доменного имени.
Исправлено: некоторые случаи, когда импорт конфигурации завершается неудачно и не может быть отменён.
Исправлено: другие проблемы с взаимодействием. Ленивый балансировщик: v1.3.8beta или v55448330/lazy-balancer:latest
Инициализация базы данных
docker exec lazy_balancer python manage.py makemigrations --noinput 2>/dev/null
docker exec lazy_balancer python manage.py migrate --run-syncdb
Хост
Способ развёртывания см. в сценарии deploy.sh.
python manage.py makemigrations --noinput 2>/dev/null
python manage.py migrate --run-syncdb
supervisord -c /app/lazy_balancer/service/supervisord_docker.conf
или
supervisorctl start webui
supervisorctl start nginx
http://[IP]:8000/
При первом входе потребуется создать учетную запись администратора. Для изменения учётных данных можно сбросить настройки администратора в системе.
Изображения не представлены в запросе.
Этот проект поддерживается 小宝 и распространяется под лицензией GPLv3. Мы приветствуем обратную связь и вклад кода!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )