目录
(一)、从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路径“/etc/haproxy/haproxy.cfg”
需要四台虚拟机
haproxy+keepalived IP地址:192.168.115.150
WEB1 IP地址:192.168.115.151
WEB2 IP地址:192.168.115.153
haproxy+keepalived2 IP地址:192.168.115.154
一、keepalived安装与配置
在haproxy+keepalived和haproxy+keepalived2上分别安装
(一)、keepalived安装
yum -y install keepalived
(二)、keepalived配置
在haproxy+keepalived和haproxy+keepalived2上分别配置
vim /etc/keepalived/keepalived.conf
global_defs {
router_id LVS_DEVEL
}
#HAProxy健康检查配置
vrrp_script chk_haproxy {
script "killall -0 haproxy" #使用killall -0检查haproxy实例是否存在,性能高于ps命令
interval 2 #脚本运行周期
weight 2 #每次检查的加权权重值
}
vrrp_instance HA_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.115.200
}
track_script {
chk_haproxy #对应的健康检查配置
}
}
在haproxy+keepalived和haproxy+keepalived2上分别配置 一主一从
二、安装haproxy
在haproxy+keepalived和haproxy+keepalived2上分别安装
(一)、安装haproxy
wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz
make PREFIX=/usr/local/haproxy TARGET=linux2628
make install PREFIX=/usr/local/haproxy
三、建立配置文件
在haproxy+keepalived和haproxy+keepalived2上分别配置
(一)、从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路径“/etc/haproxy/haproxy.cfg”
vim examples/init.haproxy
在etc下没有haproxy这个目录需要手动创建
mkdir /etc/haproxy
touch /etc/haproxy/haproxy.cfg
(二)、添加为系统服务
cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxy
vim /etc/init.d/haproxy
修改: 35行 内容为 BIN=/usr/local/haproxy/sbin/$BASENAME
修改权限添加执行权限
chmod +x haproxy
chkconfig --add /etc/init.d/haproxy
将脚本添加到系统服务管理器中,这样当系统启动时,会自动执行该脚本,启动 haproxy 服务。
chkconfig haproxy --level 35 on
添加3和5运行级别下自启动
chkconfig --list #查看运行级别
(三)、启动服务
service haproxy start
service haproxy stop
service haproxy restart | reload
systemctl daemon-reload
也可以使用systemctl进行启停
四、配置haproxy负载均衡
(一)、配置haproxy
在haproxy+keepalived和haproxy+keepalived2上分别配置
vim /etc/haproxy/haproxy.cfg
global
daemon #以 daemon 方式运行。
maxconn 256 #指定了 HAProxy 允许的最大连接数。
pidfile /var/run/haproxy/haproxy.pid #指定了 HAProxy 进程的 PID 文件存放位置。
defaults #定义了默认配置。
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend http-in #绑定 IP 地址和端口,指定将请求转发到 default_backend 后端。
bind *:80
default_backend servers
backend servers #定义了后端
server server1 192.168.115.151:80 maxconn 32 #限制了每个服务的最大连接数 #WEB1 ip地址
server server2 192.168.115.153:80 maxconn 32 #限制了每个服务的最大连接数 #WEB2 ip地址
listen stats #定义监控页面
bind *:1080 #绑定端口1080
stats refresh 30s #每30秒更新监控数据
stats uri /stats #访问监控页面的uri
stats realm HAProxy\ Stats #监控页面的认证提示
stats auth admin:admin #监控页面的用户名和密码
配置完成启动haproxy、keepalived
在haproxy+keepalived和haproxy+keepalived2上分别启动
service haproxy start
systemctl start keepalived
(二)、WEB1、WEB2分别安装httpd
yum -y install httpd
systemctl start httpd
在web1和web2的 var/www/html目录下创建一个测试页面
(三)、在客户机上测试
停止haproxy+keepalived虚拟机上的服务
客户机仍然可以继续访问