nginx for balancer web ui
项目起源于好哥们需要一个 7 层负载均衡器,无奈商业负载均衡器成本高昂,操作复杂。又没有特别喜欢(好看,好用)的开源产品,作为一名大 Ops 怎么能没有办法?正好最近在看 Django 框架,尝试自己给 Nginx 画皮,项目诞生!非专业开发,代码凑合看吧。
API 中同步增加字段,单位为 ms,可以自行转换
该服务会占用
9191/tcp
端口 可以在系统设置中打开公开指标接口
功能,以实现外部监控,该功能可能造成隐私泄露等安全风险,建议使用 Telegraf 等方案从本地收集数据上游服务器健康状态(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]/
因
ngx_http_upstream_dynamic
模块和主动健康检测模块及负载均衡算法实现冲突,开启动态域名解析功能后,需要由 DNS 实现负载均衡及健康检测
--platform linux/arm64
参数/api/docs
/etc/nginx/default.*
,可自行更换docker build -t <lazy-balancer>:<v1.3.8beta>
也可以 DockerHub
https://hub.docker.com/r/v55448330/lazy-balancer
docker run -d --restart=always --net=host --name=lazy_balancer \
-v <db_dir>:/app/lazy_balancer/db \
-v <log_dir>:/var/log/nginx \
<lazy-balancer>:<v1.3.8beta> or 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
or
supervisorctl start webui
supervisorctl start nginx
http://[IP]:8000/
首次登陆会要求创建管理员用户,如需修改,可在系统配置中重置管理员用户