Git Product home page Git Product logo

haproxyconsole's Introduction

HAProxyConsole是一个简单的HAProxy负载均衡任务管理系统。由于HAProxy的负载均衡任务可能会很多,手动编辑配置文件非常不方便、不安全,所以实现一个友好的管理系统是非常必要的。

功能点:

  1. TCP协议负载均衡任务的增删改、任务的列表展示;
  2. 一键应用最新配置到主服务器或从服务器并重新HAProxy进程;
  3. 修改一个配置项即可在JSON文件存储和数据库存储之间切换;
  4. 内置小工具用于不同存储方式之间的数据转换;
  5. 内嵌主从HAProxy自带数据统计页面,方便查看信息;
  6. 分/不分业务端口自动分配、指定分配端口模式;
  7. 内置配置文件正确性检查功能;等...

基于Go语言标准库http实现自带Web server,一般情况不需再使用nginx/apache。

使用场景(系统结构图)

High Availability Load Balancer

基本功能页面截图

screenshot-1

screenshot-2

配置:

conf目录下有4个文件:

  • app.sql:如果选择以MySQL来存储,则执行该文件中的sql语句创建数据表
  • app_conf.ini:该文件为haproxyconsole的主配置文件,使用之前阅读每个配置项的说明信息,按照说明修改配置。
  • DB.json:该文件是在选择以JSON文件存储时,自动生成的存储文件。
  • haproxy_conf_common.json:该json文件包含4项数据-“Global”、“Defaults”、“ListenStats”、“ListenCommon”,“Global”和“Default”对应HAProxy配置的Global和Defaults部分,“ListenStats”是启用HAProxy自带的数据统计页面,用户可能需要修改该功能启用的端口,“ListenCommon”是所有HAProxyConsole管理的TCP负载均衡任务在生成HAProxy配置listen块时的通用部分。

编译:

    cd src && go build main.go

使用:

启动HAProxyConsole(假设HAProxy部署在/usr/local目录下):cd /usr/local/haproxyconsole/bin && ./haproxyconsole &,默认端口为9090,可使用选项-p来自定义端口,如:cd /usr/local/haproxyconsole/bin && ./haproxyconsole -p 8080(注意该端口不应在HAProxyConsole为HAProxy负载均衡任务自动分配的端口范围之内(10000-20000))。

若需转换数据存储方式,则可通过内置工具来完成:cd /usr/local/haproxyconsole/bin && ./haproxyconsole -t,该工具完成的操作是:若StoreScheme设定为0,则从DBDriverName和DBDataSourceName 指定数据库的haproxymapinfo数据表中读取数据,转换成json格式存入FileToReplaceDB指定路径的JSON文件中。

缺点:

  1. 没有手动编辑HAProxy配置文件灵活,没法对某些负载均衡任务做详细的定制。
  2. 目前只实现了3层(TCP协议)负载均衡任务管理。

haproxyconsole's People

Contributors

kitelife avatar seanluo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

haproxyconsole's Issues

重构部分代码

合并config/config.go和applicationDB/applicationDB.go中的快排函数。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.