基于 Nginx 的负载均衡管理系统 Lazy balancer

GPLv3
Python
Linux
2016-07-28
_张小宝


Lazy-Balancer

项目起源于好哥们需要一个 7 层负载均衡器,无奈商业负载均衡器成本高昂,操作复杂。又没有特别喜欢(好看,好用)的开源产品,作为一名大 Ops 怎么能没有办法?正好最近在看 Django 框架,尝试自己给 Nginx 画皮,项目诞生!非专业开发,代码凑合看吧。

  • 项目基于 Django + AdminLTE 构建,在 Ubuntu 14.04 上测试通过;为了保证良好的兼容性,请使用 Chrome 浏览器。
  • 因为增加了 iptables 自动控制,所以暂时不支持 docker 方式部署;需要本地测试的同学请使用 vagrant 方式
  • 为了后续扩展方便,请大家使用 Tengine 替代 Nginx 服务

项目地址

更新

  • 将 Nginx 更换为 Tengine 以提供更灵活的功能支持以及性能提升
  • 新增 HTTP 状态码方式检测后端服务器,默认 TCP 方式
  • 新增 HTTP 状态码方式支持查看后端服务器状态
  • 修复因前方有防火墙导致无法获取后端服务器状态
  • 修复因主机头导致后端服务器探测失败
  • 新增自定义管理员用户
  • 新增配置通过文件备份和还原
  • 新增实时查看访问日志和错误日志
  • 新增实时请求统计
  • 更新 Vagrantfile
  • 修复其他 Bug

功能

  • Nginx 可视化配置
  • Nginx 负载均衡(反向代理)配置
  • Nginx 证书支持
  • 系统状态监测
  • 自动维护防火墙规则(白名单)
  • 支持 TCP 被动后端节点宕机检测
  • 支持 HTTP 主动后端节点宕机检测

运行

  • 克隆代码
mkdir -p /app  
git clone https://github.com/v55448330/lazy-balancer.git /app/lazy_balancer  
cd /app/lazy_balancer
  • 卸载 nginx
apt-get -y purge nginx-* nginx*
apt-get -y autoremove
  • 安装 tengine
git submodule update --init --recursive
cd resource/nginx/tengine
apt-get install -y build-essential libssl-dev libpcre3 libpcre3-dev zlib1g-dev
./configure --user=www-data --group=www-data --prefix=/etc/nginx --sbin-path=/usr/sbin --error-log-path=/var/log/nginx/error.log --conf-path=/etc/nginx/nginx.conf --pid-path=/run/nginx.pid
make
make install
mkdir -p /etc/nginx/conf.d
echo "daemon off;" >> /etc/nginx/nginx.conf
  • 安装 supervisor
apt-get install supervisor  
update-rc.d supervisor enable
  • 配置 supervisor
cp -rf service/* /etc/supervisor/
  • 安装依赖
apt-get install -y python-dev python-pip iptables libcurl4-openssl-dev
pip install -r requirements.txt
  • 初始化数据库
python manage.py makemigrations  
python manage.py migrate
  • 启动服务
service supervisor restart
  • 登录系统
http://[IP]:8000/

首次登陆会要求创建管理员用户,如需修改,可在系统配置中重置管理员用户

演示

imageimageimageimageimageimageimageimageimageimage

授权

本项目由 小宝 维护,采用 GPLv3 开源协议。欢迎反馈!欢迎贡献代码!



加载中

评论(12)

我小白啊啊啊
我小白啊啊啊
安装成功后 为什么系统资源无法显示呢
taotao2019
taotao2019
在创建负载均衡器时点保存时,显示:保存失败!内网网卡选择错误!
宁宁123韩
宁宁123韩

引用来自“taotao2019”的评论

manage.py是不是有错误,提示No module named django.core.management

引用来自“宁宁123韩”的评论

pip freeze 看看你django是否安装了

引用来自“taotao2019”的评论

Ubuntu 14.4系统默认是不装的吧?装好django还要做配置吗?对django版本有要求吗?

引用来自“宁宁123韩”的评论

系统默认装的是python, requirements.txt 这个文件是有依赖包的版本的
pip install -r requirements.txt 这句你确定执行正确了就行
宁宁123韩
宁宁123韩

引用来自“taotao2019”的评论

manage.py是不是有错误,提示No module named django.core.management

引用来自“宁宁123韩”的评论

pip freeze 看看你django是否安装了

引用来自“taotao2019”的评论

Ubuntu 14.4系统默认是不装的吧?装好django还要做配置吗?对django版本有要求吗?
系统默认装的是python, requirements.txt 这个文件是有依赖包的版本的
taotao2019
taotao2019

引用来自“taotao2019”的评论

manage.py是不是有错误,提示No module named django.core.management

引用来自“宁宁123韩”的评论

pip freeze 看看你django是否安装了
Ubuntu 14.4系统默认是不装的吧?装好django还要做配置吗?对django版本有要求吗?
宁宁123韩
宁宁123韩

引用来自“taotao2019”的评论

manage.py是不是有错误,提示No module named django.core.management
pip freeze 看看你django是否安装了
taotao2019
taotao2019
manage.py是不是有错误,提示No module named django.core.management
z
z123tang
想问一下可否有时间把这套系统在centos环境下安装?目前是不支持的!
JoanBoss
JoanBoss
安装后无法使用。。何解。
i
ioscan
好东西,谢谢分享. 但是怎么页面无法打开,服务器端口8000没有打开?怎么破

暂无资讯

暂无问答

Nginx 文章备忘

https://docs.nginx.com/nginx/ https://docs.nginx.com/nginx/admin-guide/security-controls/terminating-ssl-tcp/ https://docs.nginx.com/nginx/admin-guide/dynamic-modules/lua/ https...

2018/06/11 11:09
15
0
vanish(squid) + HAProxy + nginx + memcached(redis)

1. Load-balance then cache +-- Cache server #1 (varnish) -- App server #1 / Load Balancer (haproxy)-+---- Cache server #2 (varnish) -- App server #2 \ +-- Cache server #3 (varni...

2013/12/10 18:09
304
0
Nginx处理php的步骤 处理请求的流程

nginx配置文件 location ~ .*\.(php|php5)?$     {         #fastcgi_pass  unix:/tmp/php-cgi.sock;         fastcgi_pass  127.0.0.1:9000;         f...

2014/01/26 14:32
326
0
Nginx学习之负载均衡fair模块

Nginx学习之负载均衡fair模块 2017-04-10 20:27 写在开始 前面对Nginx的三种负载均衡实现做了一个简单的介绍,这里分享一个第三方的负载均衡模块nginx-upstream-fair。 模块介绍 The Nginx ...

2018/07/19 11:06
95
0
Openresty 执行阶段与api之间的关系(一)

Openresty与nginx的 执行阶段 常见的七个阶段的顺序: set_by_lua rewrite_by_lua access_by_lua content_by_lua header_filter_by_lua body_filter_by_lua log_by_lua 每个阶段的作用: se...

2016/10/24 23:41
1K
0
使用nginx做 tcp/udp 负载均衡

https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/ 目标:对非http流量进行负载均衡 可选技术:nginx + docker-compose ,,,, 过程: 负载tcp/udp流量需要...

10/04 17:14
34
0
负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建

扩展 lvs 三种模式详解 http://www.it165.net/admin/html/201401/2248.html lvs几种算法 http://www.aminglinux.com/bbs/thread-7407-1-1.html 关于arp_ignore和 arp_announce http://www.cn...

2018/07/04 22:48
58
0
负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建

扩展 lvs 三种模式详解 http://www.it165.net/admin/html/201401/2248.html lvs几种算法 http://www.aminglinux.com/bbs/thread-7407-1-1.html 关于arp_ignore和 arp_announce http://www.cn...

2018/12/20 22:59
19
0
lua 动态修改upstream

基于 OpenResty balancer_by_lua 配置指令, 利用 ngx.crc32_long 根据源地址与目的端口生成hash, 实现一个简单的 ip_hash upstream. 仅供参考 upstream backend{ server 0.0.0.0; balancer...

2018/12/20 17:06
92
0
ngnix-operesty / 初识

前言 官网 安装 组件 文摘 使用balancer_by_lua_block做应用层负载均衡 ngx_lua模块 安装 yum -y install yum-utils yum-config-manager --add-repo https://openresty.org/package/centos/...

2018/06/29 23:54
31
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部