HAProxy负载均衡器的安装及配置

简介: 软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。

软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。

HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当 前,HAProxy支持两种主要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式 下,HAProxy仅在客户端和服务器之间转发双向流量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求 (request)或者回应(response)里指定内容来控制协议,这种操作要基于特定规则。

我现在用HAProxy主要在于它有以下优点,这里我总结下:

一、免费开源,稳定性也是非常好,这个可通过我做的一些小项目可以看出来,单Haproxy也跑得不错,稳定性可以与LVS相媲美;

二、根据官方文档,HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express),这个作为软件级负载均衡,也是比较惊人的;

三、HAProxy可以作为MySQL、邮件或其它的非web的负载均衡,我们常用于它作为MySQL(读)负载均衡;

四、自带强大的监控服务器状态的页面,实际环境中我们结合Nagios进行邮件或短信报警,这个也是我非常喜欢它的原因之一;

五、HAProxy支持虚拟主机。

实验环境也很简单:

HAProxy  IP:192.168.4.192 Centos5.5-64bit
Web1 IP:192.168.4.45 Centos5.4-64bit
Web2 IP:192.168.21.45 FreeBSD8.0-64bit

具体安装及配置文档如下:

一、HAProxy的下载及安装过程:

wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz make TARGET=linux26 prefix=/usr/local/haproxy install
cd /usr/local/haproxy
mkdir conf
cd conf
vim haproxy.conf

内容 如下:

点击(此处)折叠或打开

  1. global log
  2.     1 local0
  3.     maxconn 4096
  4.      chroot /usr/local/haproxy
  5.     uid 501 gid 501
  6.     daemon
  7.     nbproc 1
  8.     pidfile /usr/local/haproxy/logs/haproxy.pid debug
  9.     defaults log
  10.     127.0.0.1 local3
  11.      mode http
  12.     option httplog
  13.     option httpclose
  14.     option dontlognull
  15.     option forwardfor
  16.     option redispatch
  17.     retries 2
  18.     maxconn 2000
  19.     balance roundrobin
  20.     stats uri /haproxy-stats
  21.     contimeout 5000
  22.     clitimeout 50000
  23.     srvtimeout 50000
  24.     listen web_proxy 192.168.4.192:80
  25.     #option httpchk HEAD /index.php HTTP/1.0
  26.     server web1_192.168.21.45 192.168.21.45:80 cookie app1inst1 check inter 2000 rise 2 fall 5
  27.     server web2_192.168.4.45 192.168.4.45:80 cookie app1inst2 check inter 2000 rise 2 fall 5

配置文件刚从服务器上copy下来的,保证可用。这里有个事情说明一下,有时候我们进入页面http://192.168.4.192/就会报如下错误:

503 Service UnavailableNo server is available to handle this request.
option httpchk HEAD /check.txt HTTP/1.0

此问题出在这句话上面,它的意思是Haproxy会判断你的后端web的根上存在check.txt没有,以此作为haproxy-status的监控状态依据,将它#掉即可;如果是生产环境,你可将check.txt改为index.jsp或index.php即可;

另外,建议配置一个HAProxy的启动、关闭、重启脚本,放在/etc/init.d下,我们在平时的工作中应该养成一个习惯,服务器的启动或重启应该是最简单的,万一到了生产环境下出错时,我们可以以最快的方式启动,如果不用脚本的话,我们就要尝试以如下方式启动:

/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg

以下脚本生成后,我们直接可以用/etc/init.d/haproxy start来启动HAProxy服务了。


点击(此处)折叠或打开

  1. #!/bin/bash
  2. BASE_DIR="/usr/local/haproxy"ARGV="$@"
  3. start(){echo "START HAPoxy SERVERS"$BASE_DIR/sbin/haproxy -f $BASE_DIR/conf/haproxy.cfg}
  4. stop(){echo "STOP HAPoxy Listen"
  5. kill -TTOU $(cat $BASE_DIR/logs/haproxy.pid)echo "STOP HAPoxy process"
  6. kill -USR1 $(cat $BASE_DIR/logs/haproxy.pid)}
  7. case $ARGV instart)
  8. startERROR=$?;;stop)
  9. stopERROR=$?;;
  10. restart)stopstartERROR=$?;;*)
  11. echo "hactl.sh [start|restart|stop]"
  12. esacexit $ERROR


我们在Firefox或IE上输入 http://192.168.4.192 就可以轮询的看到后端的web的页面了,另外我们可以随时监控页面 http://192.168.4.192/haproxy-status/,效果图如下:



相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
25 3
|
4月前
|
负载均衡 网络协议 网络架构
VRRP负载均衡模式配置实用吗?
VRRP负载均衡模式配置实用吗?
67 0
|
6月前
|
缓存 负载均衡 关系型数据库
Pgpool-II实现高可用+读写分离+负载均衡(一)---- 规划及安装
Pgpool-II是一款工作在PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件。提供了连接池、复制、负载均衡、限制过多连接、看门狗、查询缓存等功能。
429 0
|
6月前
|
负载均衡 算法 应用服务中间件
百度搜索:蓝易云【Linux系统如何使用 HAProxy、Nginx 和 Keepalived 进行负载均衡?】
通过上述步骤,你可以在Linux系统中使用HAProxy、Nginx和Keepalived来实现负载均衡。这些工具可以帮助你将流量分配到多个后端服务器上,提高系统的性能、可靠性和可扩展性。
87 0
|
1天前
|
负载均衡 监控 网络协议
使用haproxy实现负载均衡集群
【4月更文挑战第14天】HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,快速并且可靠的一种解决方案。
7 1
|
1月前
|
弹性计算 缓存 网络协议
slb配置监听规则
配置Server Load Balancer的监听规则涉及选择协议(如HTTP/HTTPS/TCP/UDP)、设置端口,配置后端服务器组,设定健康检查(TCP或HTTP),定义转发规则(轮询、权重等),配置SSL证书、会话保持及安全优化措施。在阿里云上,这可通过登录控制台,选择SLB实例,添加监听并设置相关参数来完成。不同云服务商的具体步骤可能略有差异,参考官方文档为宜。
33 3
|
1月前
|
弹性计算 负载均衡 算法
SLB配置与使用
SLB配置与使用
25 4
|
1月前
|
SpringCloudAlibaba 负载均衡 Java
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
【二】SpringCloud Alibaba之Nacos整合篇(配置负载均衡)
252 0
|
2月前
|
数据采集 负载均衡 应用服务中间件
Python爬虫之Splash负载均衡配置#7
Splash负载均衡配置【2月更文挑战第28天】
33 0
|
3月前
|
负载均衡 网络协议 小程序
Nginx配置Tcp负载均衡
Nginx配置Tcp负载均衡