centos7haproxy+keepalive
1部署keepalived
1.1下载keepalived源码包,并解压
# wget http://www.keepalived.org/software/keepalived-1.4.2.tar.gz
# tar xf keepalived-1.4.2.tar.gz
# cd keepalived-1.4.2
1.2安装包
# ./configure --prefix=/usr/local/keepalived --disable-fwmark && make && make install
# cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived.rh.init /etc/sysconfig/keepalived.sysconfig
# cp -f /usr/local/src/keepalived-1.4.2/keepalived/keepalived.service /usr/lib/systemd/system/
# cp /usr/local/src/keepalived-1.4.2/bin/keepalived /usr/sbin/
1.3配置keepalived
分别在两台负载服务器同时执行以下操作安装keepalived:
1.3.1master服务器:
# mkdir /etc/keepalived
# mkdir /etc/keepalived/vip
# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth0 # 实例绑定的网卡
virtual_router_id 80 # router_id必改
priority 50 # 优先级
advert_int 1 # 检查间隔,默认为1秒
unicast_src_ip 10.10.21.197 # 本机ip
unicast_peer {
10.10.21.198 # 备机ip
}
authentication {
auth_type PASS # 负载同步验证方式
auth_pass 123456
}
virtual_ipaddress {
10.10.21.250/24 dev eth0 label eth0:0 # vip配置
}
}
include /etc/keepalived/vip/*.conf # 配置文件导入
1.3.2backup服务器:
# mkdir /etc/keepalived
# mkdir /etc/keepalived/vip
# cat /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state backup
interface eth0 # 实例绑定的网卡
virtual_router_id 81 # router_id必改
priority 50 # 优先级
advert_int 1 # 检查间隔,默认为1秒
unicast_src_ip 10.10.21.198 # 本机ip
unicast_peer {
10.10.21.197 # 备机ip
}
authentication {
auth_type PASS # 负载同步验证方式
auth_pass 123456
}
virtual_ipaddress {
10.10.21.250/24 dev eth0 label eth0:0 # vip配置
}
}
include /etc/keepalived/vip/*.conf # 配置文件导入
1.3.3 验证
# 启动keepalived
# systemctl start keepalived
# systemctl enable keepalived
# ifconfig
2haproxy安装
# yum -y install haproxy
# mkdir /etc/haproxy/conf
# vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
EnvironmentFile=/etc/sysconfig/haproxy
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf -c -q
ExecStart=/usr/sbin/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf -p /run/haproxy.pid $OPTIONS
ExecReload=/bin/kill -USR2 $MAINPID
KillMode=mixed
[Install]
WantedBy=multi-user.target
# vim /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 100000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode http
option http-keep-alive
option forwardfor except 127.0.0.0/8
maxconn 100000
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /haproxy-status # 页面访问路径
stats auth haadmin:q1w2e3r4ys
#####################分文件conf/*.cfg 配置实例###############
frontend openstack_mysql
bind 192.168.10.100:3306
mode tcp
default_backend openstack_mysql_node
backend openstack_mysql_node
mode tcp
balance source
server 192.168.10.201 192.168.10.201:3306 check inter 2000 fall 3 rise 5
# vim /etc/sysconfig/syslog
local2.* /var/log/haproxy.log
# vim /etc/sysctl.conf
# 开启允许绑定非本机的IP,haporxy启动忽视VIP存在
net.ipv4.ip_nonlocal_bind = 1
# 内核是否转发数据包
net.ipv4.ip_forward = 1
# sysctl -p
验证:
# systemctl reload haproxy
# systemctl start haproxy
# systemctl enable haproxy
http://<IP>:9999/haproxy-status
3keepalived与haproxy配置
# cat /etc/keepalived/check_haproxy.sh
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then
systemctl start haproxy
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then
systemctl stop keepalived
fi
主:
vrrp_script chk_haproxy { #Haproxy服务启动
script "/etc/keepalived/check_haproxy.sh" #监控haproxy进程的脚本, 根据自己的实际路径放置
interval 2
weight -4
}
vrrp_instance VI_1 {
state MASTER
interface eth0 # 实例绑定的网卡
virtual_router_id 80 # router_id必改
priority 50 # 优先级
advert_int 1 # 检查间隔,默认为1秒
unicast_src_ip 10.10.21.197 # 本机ip
unicast_peer {
10.10.21.198 # 备机ip
}
authentication {
auth_type PASS # 负载同步验证方式
auth_pass 123456
}
track_script { #调用haproxy进程检测脚本
chk_haproxy
}
virtual_ipaddress {
10.10.21.250/24 dev eth0 label eth0:0 # vip配置
}
}
include /etc/keepalived/vip/*.conf # 配置文件导入
从:
# cat /etc/keepalived/keepalived.conf
vrrp_script chk_haproxy { #Haproxy服务启动
script "/etc/keepalived/check_haproxy.sh" #监控haproxy进程的脚本, 根据自己的实际路径放置
interval 2
weight -4
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 81 # router_id必改
priority 50 # 优先级
advert_int 1 # 检查间隔,默认为1秒
unicast_src_ip 10.10.21.198 # 本机ip
unicast_peer {
10.10.21.197 # 备机ip
}
authentication {
auth_type PASS # 负载同步验证方式
auth_pass 123456
}
track_script { #调用haproxy进程检测脚本
chk_haproxy
}
virtual_ipaddress {
10.10.21.250/24 dev eth0 label eth0:0 # vip配置
}
}
include /etc/keepalived/vip/*.conf # 配置文件导入
centos7haproxy+keepalive的更多相关文章
- keepalive的不足,如何处理
MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求:我们知道,keepalive是基于虚拟ip的存活来判断是否抢占master的机制的,但是如果我们做了MySQL的keepa ...
- 大话keepalive
大话keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的. tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期 ...
- HttpsURLConnection 利用keepAlive特性进行优化一例
最近项目中,遇到一个报错: java.lang.OutOfMemoryError: unable to create new native thread 报错的场景是:一个消息的群发,群里总共有50多 ...
- 修改socket为keepAlive
参考文章:http://blog.csdn.net/ctthuangcheng/article/details/8596818 [root@mdw- gpadmin]# vi /etc/sysctl. ...
- HTTP Keep-Alive模式
1.什么是Keep-Alive模式? 我们知道HTTP协议采用"请求-应答"模式, 当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 ...
- TCP心跳 | TCP keepAlive(转)
应用层对于每个socket采用如下函数来开启 keepalive机制,其参数将采用系统上述配置. setsockopt(rs, SOL_SOCKET, SO_KEEPALIVE, (void *)&a ...
- 闲说HeartBeat心跳包和TCP协议的KeepAlive机制
很多应用层协议都有HeartBeat机制,通常是客户端每隔一小段时间向服务器发送一个数据包,通知服务器自己仍然在线,并传输一些可能必要的数据.使用心跳包的典型协议是IM,比如QQ/MSN/飞信等协议. ...
- SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成,浏览器中的Keep-Alive
http://www.cnblogs.com/OpenCoder/p/5089258.html IE中Keep-Alive机制引起的错误 我们知道Http协议是基于TCP/IP连接的,也就是说 ...
- Keepalive双主搭建配置
Keepalive 双主搭建配置 keepalived保证双主数据库的可用性 环境说明 192.168.1.10 keepalive 主1 192.168.1.20 keepalive 主2 19 ...
随机推荐
- oracle给用户授权存储过程
https://www.jianshu.com/p/fab356d68ae2 grant connect,resource to xinomonitor; 发现不能进行断点调试,然后授如下权限 gra ...
- An unavoidable detour for home CodeForces - 814E (dp)
大意: 给定一棵树每个点的度数, 求所有满足条件的树的个数 每个点到$1$的最短路唯一 假设$l_i$为点$i$到$1$的最短距离, 那么$l_i\ge l_{i-1}$ 每个点度数范围$2\le d ...
- 本地安装SQL Server 2017 Express和Microsoft SQL Server Management Studio 18.1
sqlserver下载链接:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 这个安装的是免费版的Express,当然也可 ...
- [转载]C++名字空间
[转载]C++名字空间 之前这个概念没搞清楚,最近又遇到了,这里记录一下. 下面的资料讲的比较深入浅出: http://c.biancheng.net/view/2193.html http://c. ...
- 单例模式详解以及需要注意的地方(Singleton)
单例模式,顾名思义,就是在Java程序中只有唯一一个实例,这样做的好处是可以在不需要多个实例的对象采用单例模式可以节省内存,否则会造成不必要的内存浪费.单例模式的定义为:保证一个类只有一个实例,自己可 ...
- 关于Vue中,$this.router.push到当前页面,只是传入参数不同,页面不刷新的问题解决
在页面的watch中,监听$router的变化 watch: { $route (to, from) { this.$router.go(0) } } 其中this.$router.go(0)为刷新页 ...
- 对于Element-ui分页进行再次的封装使用
这是我项目的分页的目录结构,话不多说,直接上代码. <template> <div class="pagination-container"> <el ...
- cdc跨时钟域处理-结绳握手法
参考文档 https://blog.csdn.net/u011412586/article/details/10009761 前言 对于信号需要跨时钟域处理而言,最重要的就是确保数据能稳定的传送到采样 ...
- CVE-2019-11604 Quest KACE Systems Management Appliance <= 9.0 XSS
CVE-2019-11604 Quest KACE Systems Management Appliance CVE-2019-11604 Quest KACE Systems Management ...
- 【清单】值得「等待」的12个指示加载状态的 js 库
以下优选 GitHub 上高 star 的指示加载状态的 JavaScript 库.另外这里还有10个有意思的 JavaScript 实战小项目供大家学习. 上期入口:一份数据分析学习清单.xls M ...