配置HAProxy实现Web负载均衡

环境:一台安装Haproxy,两台安装Apache服务(防火墙和SElinux关闭)

(源码安装:wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz——tar zcvf haproxy-1.3.20.tar.gz——cd haproxy-1.3.20——make TARGET=linux26 PREFIX=/usr/local/haproxy—— make install PREFIX=/usr/local/haproxy——安装完毕后,进入安装目录配置文件,默认情况下目录里是没有.cfg配置文件的,可以回到安装文件目录下将examples下的haproxy.cfg拷贝到usr/local/haproxy下

使用浏览器访问两台web的IP地址,能成功访问到不同的页面,方便我们后面直观地观察负载均衡的效果(Apache在这里不是重点,所以不讲太多)

在Haproxy上也curl一下两台Web,确认也可以正常访问

1、安装Haproxy

yum install -y haproxy

service haproxy enable

service haproxy restart

增加以下内容,然后重启haproxy服务

配置HAProxy实现Web负载均衡

配置HAProxy实现Web负载均衡

配置HAProxy实现Web负载均衡配置HAProxy实现Web负载均衡

配置HAProxy实现Web负载均衡

配置HAProxy实现Web负载均衡

重启服务

(如果重启提示Starting proxy haproxy_http: cannot bind socket,那就在sysctl.conf中加入net.ipv4.ip_nonlocal_bind=1,查看netstat -ntpl,看看80端口被哪个进程占用了,杀死,重启haproxy)

使用浏览器访问HAProxy的IP地址,多次刷新,成功实现轮询访问web01和web02

配置HAProxy实现Web负载均衡

登录haproxy的后台 :

配置HAProxy实现Web负载均衡

配置HAProxy实现Web负载均衡

配置HAProxy实现Web负载均衡

修改haproxy的配置文件,将web01的权重改为3,web02的权重仍为1,这样访问到两台web的比例应该为3:1,改好后重启下haproxy服务

配置HAProxy实现Web负载均衡配置HAProxy实现Web负载均衡配置HAProxy实现Web负载均衡

再次通过浏览器访问HAProxy的IP地址,多次刷新进行访问测试
再次登录HAProxy后台查看统计数据,可以看到访问到web01和web02的比例为3:1

配置HAProxy使用Https加密访问

cd /etc/pki/tls/certs/

make liushuilian.pem

配置HAProxy实现Web负载均衡配置HAProxy实现Web负载均衡

修改HAProxy的配置文件,增加以下参数后重启haproxy服务

配置HAProxy实现Web负载均衡

配置HAProxy实现Web负载均衡

配置HAProxy实现Web负载均衡

成功访问到Web01页面,刷新也能访问到Web02,说明在https的加密访问下负载均衡也没问题

通过hosts解析配置一个域名指向HAProxy的IP地址,也能正常访问

配置http重定向,自动将http重定向为https,修改haproxy配置文件,增加以下参数,并重启服务

配置HAProxy实现Web负载均衡

使用浏览器测试,成功实现http自动重定向为https进行访问

效果是动态显示的,自行去试验。