HA-Proxy 组件图
HA-Proxy配置中分成四部分内容,当然这些组件不是必选的,可以根据需要选择部分作为配置。Defaults组件是配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件中(当这些组件某些参数没有被配置而在Defaults中配置了)。Frontend组件是接收请求的前端虚拟节点,就类似于LVS中配置了VIP的Load Balancer,Frontend可以直接指定后端指向那一个backend(可动态选择)。Backend是后端服务集群的配置,类似于LVS中的那些Real Server,一个Backend对应一个或者多个实体服务器。Listen是Frontend和Backend的组合体,可以直接定义一个类似于JBoss的 Server Farm。还有一些默认的配置可以通过在配置文件中配置或者在命令行中作为参数输入。
安装HA-Proxy:
1. 下载HA-Proxy安装包。
2. 解压执行make TARGET=linux26(注意,TARGET后面根据本机操作系统内核版本来填写)
3. Make install
4. 目录下执行haproxy,如果有使用说明出现表示已经安装正常。
5. 使用方式haproxy –f 配置文件地址。(例如 haproxy –f haproxy.cfg)
HA-Proxy日志配置说明:
HA-Proxy可以收集本机及其他后端服务器日志,但是需要在Load Balancer上作一些配置。
首先修改/etc/sysconfig/syslog文件,将SYSLOGD_OPTIONS="-m 0” 修改为SYSLOGD_OPTIONS="-m 0 -r -x",支持收集远程服务器日志。
然后修改/etc/syslog.conf,增加如下语句:
#add by haproxy
local0.* /home/admin/tools/haproxy-1.3.17/haproxy.log // haproxy.log地址代表了需要存储日志的地址
执行service syslog restart,重新启动系统日志器
最后就是在HA-Proxy的配置中增加日志输出(具体可以参考后面的配置文件说明)
HA-Proxy配置文件说明:
下面的配置文件简单来说就是配置了根据请求参数的不同,将请求分别定向到后端的淘宝集群和阿里软件集群。具体配置文件(haproxy.cfg)如下:
log 127.0.0.1 local0 info //日志输出配置,所有的日志都记录在本机,通过local0的系统日志器输出,这关系到前面我们做的配置
daemon //以后台进程方式启动Ha-proxy
nbproc 2 //启动两个ha-proxy进程实例
pidfile /home/admin/tools/haproxy-1.3.17/haproxy.pid // pid记录的文件
defaults //默认配置
mode http //默认采用http模式,可以配置tcp来做4层消息转发
option httplog //采用http日志格式
retries 3 //三次连接失败就认为是服务器不可用,主要是通过后面的check配置来实现服务器状态检查
maxconn 2000 //最大连接数
contimeout 5000 //连接超时时间
clitimeout 50000 //客户端连接超时时间
srvtimeout 50000 //服务端连接超时时间
stats uri /admin?stats //服务器状态统计查看页面
stats auth wenchu:wenchu //服务器状态查看授权的用户名和密码设置,可以不设置
option httpchk HEAD /welcome.html HTTP/1.0 //服务器状态检查设置,这里是向每一个后端服务器请求/welcome.html页面来检查服务端健康状况。
frontend http-in //前端节点定义
bind :8181 //虚拟服务节点监听本地的8181端口
mode http
log global
option httplog
option httpclose //每次请求完毕后主动关闭http通道,HA-Proxy不支持keep-alive模式,只能够模拟这种模式的实现
option forwardfor //如果后端服务器需要获得客户端的真实IP需要配置次参数,将可以从Http Header中获得客户端IP
capture request header Host len 20 //此配置和一下的类似配置都是抓取Http请求中的参数记录到日志中。
capture request header User-Agent len 16
capture request header Content-Length len 10
capture request header Referer len 20
capture response header Content-Length len 10
//控制策略的配置
acl api_taobao url_sub -i sip_apiname=taobao. //在请求url中包含sip_apiname=taobao,则此控制策略返回true,否则为false
acl api_alisoft url_sub -i sip_apiname=alisoft. //在请求url中包含sip_apiname=alisoft,则此控制策略返回true,否则为false
acl invalid_req url_sub -i sip_apiname= //在请求url中包含sip_apiname=,则此控制策略返回true,否则为false
acl stat_req url_dir -i admin //在请求url中存在admin作为部分地址路径,则此控制策略返回true,否则返回false
block if !invalid_req !stat_req //block表示阻止请求,返回403错误,当前表示如果不满足策略invalid_req,同时也不满足策略stat_req,则阻止请求。(就是要求URL中必需有参数sip_apiname,除非是查看服务器状态的URL)。
use_backend alisoft_server if api_alisoft //如果是满足策略api_alisoft的情况,则使用alisoft_server作为后端服务集群。
use_backend taobao_server if api_taobao //如果是满足策略api_taobao的情况,则使用taobao_server作为后端服务集群。
default_backend alisoft_server //使用alisoft_server作为默认后端服务集群。
backend alisoft_server //后端节点定义
mode http
balance roundrobin //负载均衡策略配置
cookie SERVERID //允许插入serverid到cookie中,serverid后面可以定义
server app1 10.2.225.139:80 cookie 1 check fall 5 weight 1 //真实服务器配置定义cookie 1表示serverid为1,check表示需要状态检查,fall 5表示失败五次就认为服务器状态不可用(不在接受请求),weight 1表示权重
server app2 10.2.225.136:80 cookie 2 check fall 5 weight 2
backend taobao_server //后端节点定义
mode http
server app3 10.2.226.41:80 check fall 5
完成配置后,执行haproxy –f haproxy.cfg,后台进程就可以启动了,然后在浏览器中输入刚才定义的状态检查地址可以看到如下内容:
相关推荐
### Java点滴学习资料 #### 一、Java简介与特点 Java是一种高级编程语言,由Sun Microsystems公司于1995年推出。Java的核心优势之一在于其跨平台特性,即所谓的“一次编写,到处运行”,这使得Java代码能够在不同...
在自动点滴管理系统中,如果服务部署在多台服务器上,可以通过WCF的负载均衡策略来分散请求,提高系统响应速度和整体性能。 总之,自动点滴管理系统利用.NET 3.5框架和WCF技术,构建了一个高效、安全的分布式系统,...
在VC++的学习过程中,了解和掌握这些点滴知识是非常重要的,它们涵盖了从基本语法到MFC框架的使用,以及面向对象编程的原则。以下是对这些知识点的详细说明: 1. **组合框数据输入**:在VC++中,当你在组合框...
* 方案三:使用光电传感器定点对液面进行监测。这是最理想的选择。 1.1.2 液体点滴速度测量方案: * 方案一:利用光透射原理。但是由于储液瓶是透明玻璃瓶,从光源发射出来的光大部分反射,透射光比较微弱,这样...
自动点滴管理系统是一款基于.NET 3.5框架,利用Windows Communication Foundation (WCF) 技术构建的应用程序。WCF是微软提供的一种全面的服务导向架构,用于构建高度互操作的、分布式系统。它允许应用程序在不同的...
国旗下演讲:学习点滴心得.pdf
#### 三、SD卡初始化过程 SD卡的初始化过程是SD卡协议中的关键步骤之一: 1. **`SD_SEND_OP_COND(ACMD41)`命令**的目的在于让SD卡控制器能够确认SD卡是否可以在指定的Vdd电压范围内正常工作。如果SD卡无法在指定...
SD卡协议学习点滴(完整版本),对使用SD卡很有帮助
7. **负载均衡与故障转移**:WCF支持负载均衡和故障转移策略,当服务节点增多或出现故障时,系统能自动调整,确保服务的连续性和可用性。 通过.NET框架3.5和WCF技术的结合,自动点滴管理系统能够实现高效、安全的...
【基于Wcf技术的自动点滴管理系统】是一种利用先进的软件技术设计的医疗管理工具,主要用于提升医疗机构的点滴护理效率。此系统的核心是运用Windows Communication Foundation(Wcf),这是一种由微软提供的.NET框架...
标题中的“智能液体点滴速度监测”是指一种利用现代科技手段对输液过程中的点滴速度进行实时、精确监控的技术。这项技术通常结合传感器、微处理器和显示设备,旨在提高医疗护理的安全性和效率,防止因点滴速度不当...
自动点滴管理系统是一款基于.NET 3.5框架,利用Windows Communication Foundation (WCF) 技术构建的高效能、高可靠性的应用。WCF是微软推出的一种面向服务的通信框架,旨在简化分布式系统的开发,它提供了丰富的功能...
【点滴液体点滴速度监控装置设计报告】 本设计报告主要探讨了一种基于单片机技术的液体点滴速度监控装置,旨在实现对输液过程的精确控制和实时监测,以提高医疗安全性和患者的舒适度。该系统的核心是单片机AT89C51...
这份名为“数据结构及算法学习点滴记录.zip”的压缩包文件显然包含了丰富的学习资源,旨在帮助大学生深入理解和掌握数据结构这一核心概念。 数据结构是计算机存储、组织数据的方式,它涉及到如何在计算机内存中有效...
很抱歉,我无法根据您提供的文件内容来生成与"Oracle初学者的学习点滴及国内oracl.docx"相关的IT知识。文件的内容主要涉及国际贸易教程的习题和理论,如李嘉图的比较优势理论、里昂惕夫悖论,以及21世纪国际贸易的新...