HAProxy1.6+keepalived部署方法
来源:互联网 发布:朱宏钧 知乎 年龄 编辑:程序博客网 时间:2024/06/04 18:06
目 录
1 环境 1
2 准备 1
3 安装(此步骤需同时在247,248机器执行)1
4 开启路由转发(此步骤需同时在247,248机器执行)3
5 设置虚拟IP(此步骤需同时在244,245机器执行)3
6 配置keepalived4
6.1 master 4
6.2 slave配置 5
7 haproxy的安装 7
8 创建配置文件和启动文件 7
9 配置HAProxy 7
10 启动HAProxy 9
11 配置关联HAProxy启动脚本9
1 环境
Centos:5.7
HAProxy-Master: 10.1.1.247
HAProxy-Backup: 10.1.2.248
VIP: 10.1.1.240
RealServer1: 10.1.1.242
RealServer1: 10.1.1.1.243
2 准备
haproxy-1.6.6.tar.gz
keepalived-1.2.21.tar.gz
3 安装(此步骤需同时在247,248机器执行)
[root@localhost opt]# yum -y install popt popt-devel libnl libnl-devel popt-static libnfnetlink libnfnetlink-devel openssl openssl-devel
[root@localhost opt]# cd /data/software
[root@localhost software]# tar -zxvf keepalived-1.2.21.tar.gz
[root@localhost software]# cd keepalived-1.2.21
#安装地址不要乱改
[root@MGM1 keepalived-1.2.21]# ./configure --sysconf=/etc --prefix=/usr/local/keepalived
[root@MGM1 keepalived-1.2.21]# make && make install
4 开启路由转发(此步骤需同时在247,248机器执行)
[root@localhost keepalived-1.2.21]# cat /proc/sys/net/ipv4/ip_forward
1
[root@localhost keepalived-1.2.21]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@CentOS-LVS_MASTER ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
5 设置虚拟IP(此步骤需同时在244,245机器执行)
首先查看一下现有网卡的IP地址,用root特权运行下面的命令
[root@localhost ~]# ip addr
从上面的详细信息中,可以看到服务器的网卡名是eno16777736,ip地址是10.1.1.245。
网卡的配置文件存储在 /etc/sysconfig/network-scripts/ 目录下。每个网卡的详细内容将会以不同的名字存储,比如ifcfg-eno16777736。
打开此配置文件,并且再添加一个IP地址
编辑文件 vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
像下面那样加入额外的IP地址。
IPADDR2=10.1.1.240
NETMASK2=255.255.255.0
重启网络服务来使更改生效。
[root@localhost ~]#systemctl restart network
6 配置keepalived
[root@localhost ~]# vim /etc/keepalived/keepalived.conf #LVS的端口须与realserver端口一致
分别配置master和slave
6.1 master
global_defs {
notification_email {
admin@centos.bz
}
notification_email_from keepalived@domain.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/data/program/keepalived/keepalived/check_haproxy.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER ############ 辅机为 BACKUP
interface eno16777736
virtual_router_id 51
mcast_src_ip 10.1.1.1.247
priority 150 ########### 权值要比 back 高
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port ### 执行监控的服务
}
virtual_ipaddress {
10.1.1.240
}
}
vrrp_instance VI_2 {
state BACKUP
interface eno16777736
virtual_router_id 52
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.1.1.240
}
}
6.2 slave配置
global_defs {
notification_email {
admin@centos.bz
}
notification_email_from keepalived@domain.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/data/program/keepalived/keepalived/check_haproxy.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP ############ 主机为 MASTER
interface eno16777736
virtual_router_id 51
mcast_src_ip 10.1.1.248
priority 99 ########### 权值要比 master 低
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port ### 执行监控的服务
}
virtual_ipaddress {
10.1.1.240
}
}
vrrp_instance VI_2 {
state MASTER
interface eno16777736
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.1.1.240
}
}
7 haproxy的安装
[root@MGM1 keepalived-1.2.21]# cd /data/software
[root@MGM1 software]# tar -zxvf haproxy-1.6.6.tar.gz
[root@NDB1 software]# cd haproxy-1.6.6
#查看版本看,此处为3.10
[root@MGM1 haproxy-1.6.6]# uname -a
Linux MGM1 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
#编译,标红处于上面的3.1版本需匹配
[root@MGM1 haproxy-1.6.6]# make TARGET=linux31 PREFIX=/data/program/haproxy
#安装
[root@MGM1 haproxy-1.6.6]# make install PREFIX=/data/program/haproxy
install -d "/data/program/haproxy/sbin"
install haproxy "/data/program/haproxy/sbin"
install -d "/data/program/haproxy/share/man"/man1
install -m 644 doc/haproxy.1 "/data/program/haproxy/share/man"/man1
install -d "/data/program/haproxy/doc/haproxy"
for x in configuration management architecture cookie-options lua proxy-protocol linux-syn-cookies network-namespaces close-options intro; do \
install -m 644 doc/$x.txt "/data/program/haproxy/doc/haproxy" ; \
8 创建配置文件和启动文件
[root@MGM1 sbin]# cd /data/software/haproxy-1.6.6/
[root@MGM1 haproxy-1.6.6]# cp examples/haproxy.init /etc/init.d/haproxy
[root@MGM1 haproxy-1.6.6]# chmod +x /etc/init.d/haproxy
[root@MGM1 haproxy-1.6.6]# ln -s /usr/local/sbin/haproxy /usr/sbin/
9 配置HAProxy
[root@MGM1 haproxy-1.6.6]# cd /data/program/haproxy
[root@MGM1 haproxy]# mkdir conf logs
[root@MGM1 conf]# cd conf
[root@MGM1 conf]# vi haproxy.cfg
#将以下内容拷贝到该文件中去
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
#log loghost local0 info
maxconn 4096
chroot /data/program/haproxy/
uid 0
gid 0
daemon
#debug
#quiet
defaults
log global
mode http
option httplog
option dontlognull
option redispatch
option abortonclose
retries 3
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
timeout check 5s
stats refresh 30s
stats uri /stats
stats realm baison-test-Haproxy
stats auth admin:admin123
stats hide-version
frontend www
bind *:80
acl web hdr(host) -i 10.1.1.240
use_backend webserver if web
backend webserver
mode http
balance roundrobin
option httpchk /index.html
server web01 10.1.1.242:8081 check inter 2000 fall 3 weight 30
server web01 10.1.1.243:8081 check inter 2000 fall 3 weight 20
10 配置关联HAProxy启动脚本
[root@MGM1 keepalived-1.2.21]# vi /data/program/keepalived/keepalived/check_haproxy.sh
#将以下内容拷贝到文件 中
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
/data/program/haproxy/sbin/haproxy -f /data/program/haproxy/conf/haproxy.cfg
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
/etc/init.d/keepalived stop
fi
11 启动HAProxy
#启动
[root@MGM1 haproxy-1.6.6]# /data/program/haproxy/sbin/haproxy -f /data/program/haproxy/conf/haproxy.cfg
#重启
[root@MGM1 haproxy-1.6.6]#/data/program/haproxy/sbin/haproxy -f /data/program/haproxy/conf/haproxy.cfg -st
#访问http://10.1.1.247/stats,用户名和密码为上述配置文件所设,为admin/admin123
12 将keepalived做成启动服务,方便管理(此步骤需同时在247,248机器执行)
[root@localhost ~]# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
[root@localhost keepalived-1.2.21]# /etc/init.d/keepalived start //启动LVS服务
[root@localhost keepalived-1.2.21]# /etc/init.d/keepalived stop //停止LVS服务
13 启动两台realserver
http://10.1.1.242:8081/
http://10.1.1.243:8081/
通过VIP访问,http:10.1.1.240
通过不断刷新,可以明显看到在242/243之间切换
同时我们也可以看到HAProxy 关于这两台realserver的状态,目前都是正常启动的
0 0
- HAProxy1.6+keepalived部署方法
- 部署keepalived
- keepalived部署
- LVS+Keepalived 部署
- LVS + Keepalived + mycat部署
- 【MySQL】HAProxy1.6负载均衡分配策略新增first
- RabbitMQ3.6.3集群搭建+HAProxy1.6做负载均衡
- RabbitMQ3.6.3集群搭建+HAProxy1.6做负载均衡
- keepalived + LVS 配置和部署
- Keepalived+LVS 安装部署文档
- nginx + keepalived 部署及配置
- keepalived安装部署及Flume+keepalived高可用
- Centos7 haproxy1.7 安装
- bash 脚本编程十八 Keepalived自动部署
- amoeza+keepalived+mmm+mysql 高可用部署
- LVS+keepalived+nginx+tomcat部署实现
- keepalived+twemproxy部署redis高可用集群
- centos6.5集群lvs+keepalived部署
- Mysql+Atlas,Redis+Twemproxy
- C++学习路线与推荐书籍
- TCP/IP协议族
- 【数据结构】用链表实现多项式运算
- Tomcat项目部署方式
- HAProxy1.6+keepalived部署方法
- linux环境变量
- jenkins2.7配置主从节点
- 图解内存搜索工具初步使用
- eclipse集成tomcat运行web时提示引入jar包的类找不到的解决办法
- java题库5
- WindowsAPI函数大全
- Python 列表解析
- SGU 200 Cracking RSA(高斯消元+高精度)