listen appli4-backup 0.0.0.0:10004 //定义一个appli4-backup的应用
option httpchk /index.html //检查服务器的index.html文件
option persist //强制将请求发送到已经down掉的服务器
balance roundrobin //负载均衡调度算法使用轮询算法
server inst1 192.168.114.56:80 check inter 2000 fall 3 //定义在线节点
server inst2 192.168.114.56:81 check inter 2000 fall 3 backup //定义备份节点
(3)根据目前的集群设计,将haproxy.cfg配置文件的内容修改如下
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
uid 99
gid 99
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
retries 3
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen webcluster 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server inst1 192.168.1.20:80 check inter 2000 fall 3
server inst2 192.168.1.21:80 check inter 2000 fall 3
4、创建自启动脚本
[root@localhost ~]# cp ~/haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
[root@localhost ~]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@localhost ~]# chmod +x /etc/init.d/haproxy
[root@localhost ~]# /etc/init.d/haproxy start
Starting haproxy: [ OK ]
[root@localhost ~]# service iptables stop
5、测试Web集群
通过上面的步骤,已经搭建完成Haproxy的Web集群,接下来需要验证集群是否正常工作。一个集群一般需要具备两个特性,第一个是高性能,第二个是高可用
(1)测试高性能
在客户端使用浏览器打开,浏览器显示信息如图所示
第一次访问的显示信息
第二次访问的显示信息
可以看到集群的负载均衡调度已经生效,已经满足了集群的高性能需求
(2)测试高可用
现在将192.168.1.20的Nginx服务停用,在客户端使用浏览器打开,浏览器显示信息仍然如第一次访问时的图相同
从中可以看出,当出现一台节点故障,不会影响集群的使用,这样就满足了集群的高可用性。也可以将192.168.1.20的Nginx服务恢复,再将192.168.1.21的Nginx服务停用,测试高可用性
6、Haproxy的日志
Haproxy的日志默认是输出到系统的syslog中,查看起来不是非常方便,为了更好地管理Haproxy的日志,我们在生产环境中一般单独定义出来,定义的方法如下所述
(1)修改Haproxy配置文件中关于日志配置的选项,修改为下面的配置
log /dev/log local0 info
log /dev/log local0 notice
这两行配置是将原本的log 127.0.0.1配置项修改,主要是将Haproxy的info及notice日志分别记录到不同的日志文件中
然后重启Haproxy,完成Haproxy配置
(2)修改rsyslog配置
为了便于管理,将Haproxy下相关的配置独立定义到haproxy.conf,并放到/etc/rsyslog.d/下,rsyslog启动时会自动加载此目录下的所有配置文件
[root@localhost ~]# touch /etc/rsyslog.d/haproxy.conf
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
加入下面的内容: