ActivedRouter--golang实现的反向代理、监控
来源:互联网 发布:勇往直前歌词网络 编辑:程序博客网 时间:2024/06/12 22:49
基于golang 实现了简单的http反向代理服务器,监控服务器,客户端程序 ,和一个基于web的监控页面。
通过ActivedRouter 可实现自动摘除宕机服务器,的真机负载。
也可以实现IP轮训负载。
项目地址: github
简单介绍
一、通过ActivedRouter可以实现什么功能?
1、可以集群服务器的监控,通过提供的web Dashboard可以时刻监控每一台服务器的负载、内存、网络、磁盘等信息。2、反向代理服务器功能,例如Nginx的功能,可以针对不同的域名对不同的业务服务器集群进行反向代理。3、Server & Client 模式组合下,可以用作服务器监控使用,并且可以设置监控报警,Server端可以选择性开启监控Dashboard,用于直观的web界面监控。4、服务器监控报警,通过配置每一台服务器的监控报警阀值,来触发不同的脚本,从而达到服务器报警功能,后期支持:短信报警、邮件报警等等。5、实现基于真实负载的反向代理和请求路由。 支持 Random 和 Alived 模式,分别代表随机转发和基于负载转发。6、快速配置反向代理服务,省去配置nginx反向代理的麻烦步骤,一般流量下的负载足以应付。
二、快速入门
2.1、编译安装
在系统下运行如下脚本,会在当前目录生成ActivedRouter二进制程序,然后我们配置相应的配置文件,并且运行二进制程序即可启动服务。
linux64下 boot_linux64.shdarwin64下 boot_darwin64.shlinux32下 boot_linux32.sh
四、工作模式和配置文件
4.1、http/https反向代理模式(Reserve Proxy),类似nginx的反向代理功能。
编译命令: boot_*.sh 选择不通平台的boot文件开始编译安装
运行命令: ActivedRouter --runmode=proxy 运行反向代理服务
配置文件:
{ "http_switch":"on", //http开关 on off "proxy_addr":"127.0.0.1:80", //http监听端口 "proxy_method":"random", //proxy方法 random 混合模式下可支持alived方法 "https_switch":"off", //是否开启https on开启https 支持 "https_crt":"a.crt", //https证书 "https_key":"a.key", //https key "https_proxy_addr":"127.0.0.1:443",//https监听地址 "reserve_proxy":[ { "domain":"1.12xue.com", "clients":[ { "host":"12xuetest.com", "port":"80" } ] } ]}
4.2、server和client模式可以配合完全服务器监控,提供web仪表盘。
客户端运行: ActivedRouter --runmode=server
client.json
{ "domain":"wwww.xxx.com", //客户端服务器的域名可空 "cluster":"UIA集群", //服务器集群的标志 可自定义 "router_list":[ //要连接的远程路由服务器列表 "127.0.0.1:8888", "172.16.200.202:9999" ] }
服务器运行: ActivedRouter --runmode=client
server.ini
#服务器模式下的配置选项 #路由服务器监听的地址 host=127.0.0.1 #服务器监听的端口号 port=8888 #服务模式 moniter & router srvmode=router #http 提供http路由服务的ip,端口。 httphost=127.0.0.1 httpport=8080
4.3、服务器监控模式触发脚本
当监控服务器下,路由服务器开启srvmode=moniter之后才会触发
{ "script":[ { "host":"127.0.0.1", "hookscript":[ { "eventtarget":"disk", "attr":"used", "gt":"15", "callback":"ls" }, { "eventtarget":"load", "attr":"load", "gt":"1.5", "callback":"ls" }, { "eventtarget":"mem", "attr":"used", "gt":"75", "callback":"netstat -ant" } ] } ]}
运行模式
服务器模式和客户端模式
1、 第三方应用通过sdk提供的功能进行自动路由到合适的api服务器上,此处属于代理转发功能。
2、 第三方应用通过sdk提供的功能获取到一个空闲合适的服务器域名或ip。
3、 监听客户端模式下的服务器的服务状态ClientMode在客服端模式下通告服务器当前服务状态
1、 启动挂在到路由服务器 可以挂在到一个至个服务器上。
2、 实时通告路由服务器当前服务器信息,用作路由分析。Reserve Proxy内网集群配置反向代理功能MixProxy基于监控模式下,真机负载的反向代理服务。ThirdPartSDK针对第三方提供php golang 等sdk,提供基于路由负载、以及反向代理负载的http请求机制。
提供api服务器监控功能可以实时返回各服务器状态
1 0
- ActivedRouter--golang实现的反向代理、监控
- golang实现的http反向代理
- golang 实现HTTP代理和反向代理
- go学习笔记:golang实现的反向代理
- nginx 反向代理 golang web
- Golang ReverseProxy 简单的反向代理用于内网穿透
- squid实现反向代理的原理
- squid实现反向代理的原理
- Squid 反向代理的实现原理
- 利用Nginx实现tornado的反向代理
- HttpClient实现反向代理的思考
- Nginx实现负载均衡的反向代理
- nginx+apache实现简单的反向代理
- 如何实现反向代理?与正向代理的区别以及Nginx 反向代理优势
- NGINX实现反向代理
- nginx实现反向代理
- nginx实现反向代理
- ngix实现反向代理
- 使用du统计文件夹大小Tip
- qt 设置背景
- java接口的实现
- Hive Data Manipulation Language
- JDK7下载|JDK1.7下载可选择window版和linux版
- ActivedRouter--golang实现的反向代理、监控
- python科学计算:numpy
- 基于WDF的PCI/PCIe接口卡Windows驱动程序(2)-开发者需要了解的WDF中的一些重要的概念
- Sum It Up
- X_Forward_For(XXF)获取用户IP
- 21、表单操作
- org.hibernate.exception.GenericJDBCException: Cannot release connection
- linux上传和下载文件(rz,sz)
- Hive Data Definition Language