HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
linux 6.5 源码
server1 172.25.254.100
一、haproxy的安装及配置
解压源码包
yum install rpm-build -y 安装rpm-build软件
rpmbuild -tb haproxy-1.4.24.tar.gz 源码编译,制作rpm包
yum install -y gcc pcre-devel 解决依赖性包安装
rpm -ivh haproxy-1.4.24.x86_64.rpm 安装rpm包
[root@server ~]# cd haproxy-1.4.24/examples
[root@server examples]# cp content-sw-sample.cfg /etc/haproxy/haproxy.cfg
cp: overwrite `/etc/haproxy/haproxy.cfg'? y
[root@server examples]# find -name *.spec
./haproxy.spec
[root@server examples]# cd /etc/haproxy/
[root@server haproxy]# ls
haproxy.cfg
二、haproxy的负载均衡
[root@server haproxy]# groupadd -g 200 haproxy
[root@server haproxy]# useradd -u 200 -g 200 -M haproxy
[root@server haproxy]# id haproxy
uid=200(haproxy) gid=200(haproxy) groups=200(haproxy)
[root@server haproxy]# vim /etc/security/limits.conf
[root@server haproxy]# cd /etc/haproxy/
[root@server haproxy]# vim haproxy.cfg
/etc/init.d/haproxy start ##打开服务
在server2和server3中分别打开httpd
/etc/init.d/httpd start
三、haproxy的高可用
haproxy+rhcs红帽套件实现haproxy的高可用
在浏览器访问:https://server1:8084,luci自动开启8084端口接受集群节点的11111端口的数据包
使用server1的root密码登陆
创建集群并添加集群节点:
在浏览器添加Failover Domains:用来做节点隔离,或业务切换
添加共享服务VIIP:
添加haproxy脚本:
将添加的资源放在一个资源组里:
注意:添加的资源顺序就是集群启动后服务启动的顺序,所以要先添加vip,再添加haproxy
测试:
刚开始haproxy 在server4上,当关闭server4的haproxy服务,就由server1接管,则实现haproxy的高可用,haproxy不会因为节点的关闭而不能使用。如上图所示
四、haproxy的日志
vim /etc/rsyslog.conf
去掉这两行注释
增加日志位置
/etc/init.d/rsyslog restart ###重启日志服务
测试: 在浏览器中访问后,查看日志
动静分离
vim /etc/haproxy/haproxy.cfg
修改配置
use_backend dynamic if { path_end -i .php } ###如果是以.php结尾的都会去访问server3
default_backend static ###默认去访问server2
测试:在浏览器访问:IP
IP+.php