发布时间:2022-08-09 文章分类:编程知识 投稿人:李佳 字号: 默认 | | 超大 打印

HAproxy

2009-11-30 14:24:37

标签:HAproxy 休闲 职场

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nails.blog.51cto.com/640492/236878
HAPorxy 集群配置
HAProxy 介绍
反向代理服务器,支持双机热备支持虚拟主机,但其配置简单,拥有非常不错的服务器健康检查功能,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。有Web图形化的界面,可以查看集群的状态。
新的1.3版本后,引入了frontend,backend,frontend根据任意HTTP请求头内容做规则匹配,然后把请求定向到相关的backend.
网络架构
一般采用的网络结构(反向代理)
配置实例
角色
操作系统
IP地址及对应域名
服务端口
HAproxy
Redhat Linux AS4
eth0 10.0.0.60/24dms.sds.com
eth0 10.0.0.70/24help.sds.com
eth110.0.1.60/24
80
APP Server
Windows
10.0.1.10—15/24
80
需要:
1.访问dms.sds.com时,自动分发到集群节点服务器10.0.1.10-15/24 6台服务器上。
2.访问help.sds.com时,自动分发到服务器 10.0.1.15/24 (该服务器上有帮助网站)
配置步骤
1.http://haproxy.1wt.eu 下载HAproxy最新稳定版
2.将下载的文件haproxy-1.3.15.1.tar.gz存放到Linux服务器/usr/share目录。
3.解压tar –zxvfhaproxy-1.3.15.1.tar.gz
4.重命名解压后的文件夹mv haproxy-1.3.15.1 haproxy
5.cd haproxy
6.make TARGET=linux26#本例Redhat 的内核是2.6,请先查看HAproxy README
7.make install
8.安装好后就可以配置了。
9.vi haproxy.cfg
global
maxconn 5120
chroot /usr/share/haproxy#haproxy安装目录
uid 99
gid 99
daemon
quiet
# 通过nbproc多设置几个haproxy并发进程,这样每个进程的task_queue相对就会短很多,性能自然就能提高不少
nbproc2
#pidfile /var/run/haproxy-private.pid
defaults
logglobal
mode http
optionhttplog
optiondontlognull
log 127.0.0.1 local3
retries 3
option redispatch
maxconn 2000
contimeout5000
clitimeout50000
srvtimeout50000
listen SDS.DMS.COM 10.0.0.60:80# 监听IP及端口,域名是在Web界面显示的标识
mode http
stats uri /haproxy # 监控haproxy状态虚拟目录
stats realm Haproxy\statistics
stats auth gao:gao# 设置状态监控的用户名为gao密码为gao
balance roundrobin# 负载均衡算法
cookie SERVERID insert indirect
option httpclose
option forwardfor
option httpchk HEAD /welcome.htm HTTP/1.0 # 健康检测每一台的IIS根目录存放
#weblocme.htm文件
# 下面是节点服务器
server APP01 10.0.1.10:80 cookie app1inst1 check inter 2000 rise 2 fall 5
server APP02 10.0.1.11:80 cookie app1inst2 check inter 2000 rise 2 fall 5
server APP03 10.0.1.12:80 cookie app1inst3 check inter 2000 rise 2 fall 5
server APP04 10.0.1.13:80 cookie app1inst4 check inter 2000 rise 2 fall 5
server APP05 10.0.1.14:80 cookie app1inst5 check inter 2000 rise 2 fall 5
server APP06 10.0.1.15:80 cookie app1inst6 check inter 2000 rise 2 fall 5
listen Help.SDS.Com10.0.0.70:80 # 监听IP及端口,域名是在Web界面显示的标识
mode http
stats uri /haproxy# 监控haproxy状态虚拟目录
stats realm Haproxy\statistics
stats auth gao:gao#设置状态监控的用户名为gao密码为gao
balance roundrobin# 负载均衡算法
cookie SERVERID insert indirect
option httpclose
option forwardfor
option httpchk HEAD /welcome.htm HTTP/1.0 # 健康检测IIS根目录存放有
#weblocme.htm文件
# 下面是节点服务器
server APP01 10.0.1.15:80 cookie app1inst1 check inter 2000 rise 2 fall 5
9. 配置文件写好后就可以启动了。
Ifcfg eth0 add 10.0.0.70/24eth0 添加第二个IP地址
./haproxy –f haproxy.cfg 即可启动程序.
IE测试 http://sds.dms.com/welcome.htm ,不断刷新是不会显示其它APP服务器的welcome.htm页面,需要我们关掉IE,再次访问 http://sds.dms.com/welcome.htm即显示另一台,如此反复即可看到每台APP上的welcome.htm
IE测试 http://help.sds.com 也能显示10.0.0.15 上的帮助网站。
IE输入: http://sds.dms.com/haproxy http://help.sds.com/haproxy 输入用户名:gao 密码:gao即可看到haproxy的集群状态,如下图
配置haproxy Linux系统自启动配置
1.建立一个haproxy shell文件,用于控制haproxy的启动与关闭
Cd /etc/rc.d/init.d
Vi haproxy
#!/bin/sh
# description: Auto Start and Stop Haproxy Software
# chkconfig: 2345 99 10
start ()
{
cd /usr/share/haproxy
./haproxy -f haproxy.cfg
}
stop ()
{
pid=`ps -ef | grep -v grep | grep haproxy | awk '{print $2}'`
for ps in $pid
do
kill -9 $ps
done
}
case $1 in
start)start ;;
stop)stop ;;
*)echo "Use ./haproxy {start|stop}" ;;
esac
exit 0
2. chmod 755 haproxy
3. 添加自启动功能,在/etc/rc.d/rc.local文件中添加如下内容
Vi /etc/rc.d/rc.local
ifcfg eth0 add 10.0.0.70/24# eth0 添加第2IP
cd /etc/rc.d/init.d
./haproxy start# 启动haproxy 程序
4. 操作haproxy 的相关命令
cd /etc/rc.d/init.d
./haproxy start# 启动haproxy
./haproxy stop# 停止haproxy
./haproxy restart# 重启动haproxy