Keepalived HAProxy应用
Keepalived高可用服务器
2:Keepalived+LVS服务器
3:配置HAProxy负载平衡集群
作用:解决单点故障
实现高可用集群
Keepalived的功能
VRRP功能 //虚拟路由热备份协议
自动配置LVS
健康检查
keepalived安装
yum -y install keepali(k波利普)ved //RHEL7的光盘中已经包含keepalived软件包,只要配置好yum,
Keepalived高可用服务器
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes //服务器配置IP(有几台配置机台客户机除外)
nmcli connection up eth0 //启动服务
yum -y install httpd
echo “192.168.4.200” > /var/www/html/index.html
systemctl restart httpd //启动httpd
yum install -y keepalived //安装Keepalived软件
vim /etc/keepalived/keepalived.conf //服务器Keepalived配置文件
notification_email {
admin@tarena.com.cn //设置报警收件人邮箱
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
router_id LVS_DEVEL //设置路由ID号(LVS_DEVEL可以自定义)
rrp_instance VI_1 {
state MASTER //主服务器为MASTER(备服务器需要修改为BACKUP)
interface eth0 //定义网络接口
virtual_router_id 51 //主备服务器VRID号必须一致
priority 100 //服务器优先级,优先级高优先获取VIP
authentication {
auth_pass 1111 //主备服务器密码必须一致
virtual_ipaddress { //谁是主服务器谁获得该VIP(实验需要修改)
192.168.4.80 //修改成自己的vip
配置防火墙和SELinux
iptables -F //清空防火墙配置
setenforce 0 // 临时开启SELnux运行模式
ip addr show eth0 //查看VIP主备信息
tailf /var/log/messages //keepalived日志(报错可查看)
systemctl stop keepalived //关闭防火墙
Keepalived+LVS服务器
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes //服务机配置IP
nmcli connection up eth0 //启动服务
cd /etc/sysconfig/network-scripts/ //进入IP目录
cp ifcfg-lo{,:0} //复制一个lo作为
vim ifcfg-lo:0 //修改配置文件 (服务机2同样操作)
DEVICE=lo:0
IPADDR=192.168.4.15
NETMASK=255.255.255.255
NETWORK=192.168.4.15
BROADCAST=192.168.4.15
ONBOOT=yes
AME=lo:0
vim /etc/sysctl.conf //配置文件(服务器2也同样操作)
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
重启网络服务,设置防火墙与SELinux
systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl restart network
cat /var/www/html/index.html
ifconfig
systemctl stop firewalld
mcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.5/24 connection.autoconnect yes //配置主机1的网络参数(主机2同样操作)
nmcli connection up eth0 //启动
yum -y install httpd //配置后台web服务
echo “192.168.4.100” > /var/www/html/index.html //自定义页面(服务机2同样操作)
systemctl start httpd ; systemctl enable httpd //启动Web服务器软件(服务机2同样操作)
部署Keepalived实现LVS-DR模式调度器的高可用
mode http 客户端请求被深度分析后再发往服务器
mode tcp 4层调度,不检查第七层信息
mode health 仅做健康检查,已经不建议使用
(主机2同样操作)
yum install -y keepalived //下载软件
systemctl enable keepalived //设置开机自启
yum install -y ipvsadm //下载软件
ipvsadm -C //清空所有的LVS的配置
vim /etc/keepalived/keepalived.conf //配置文件(主机2同样操作)
global_defs { //全局配置
notification_email {
admin@tarena.com.cn //设置报警收件人邮箱
}
notification_email_from ka@localhost //设置发件人
smtp_server 127.0.0.1 //定义邮件服务器
smtp_connect_timeout 30
router_id lvs1 //设置路由ID号(实验需要修改)
}
vrrp_instance VI_1 {
state MASTER //主服务器为MASTER(备服务器为BACKUP)
interface eth0 //定义网络接口
virtual_router_id 51 //主辅VRID号必须一致
priority 100 //服务器优先级(备服务器比主的参数低)
advert_int 1
authentication {
auth_type pass
auth_pass 1111 //主辅服务器密码必须一致
}
virtual_ipaddress { //配置VIP(要修改为调度机ip)
192.168.4.15
}
}
virtual_server 192.168.4.15 80 { //设置ipvsadm的VIP规则(实验需要修改)
delay_loop 6
lb_algo rr //设置LVS调度算法为RR
lb_kind DR //设置LVS的模式为DR(实验需要修改)
#persistence_timeout 50 //(实验需要注释)
#注意这样的作用是保持连接,开启后,客户端在一定时间内始终访问相同服务器
protocol TCP
real_server 192.168.4.100 80 { //设置后端web服务器真实IP(实验需要修改)
weight 1 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.200 80 { //设置后端web服务器真实IP(实验需要修改)
weight 1 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.200 80 { //设置后端web服务器的真实IP(实验需要修改)
weight 2 //设置权重为2
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3 //超时间链接
nb_get_retry 3 //
delay_before_retry 3 //
systemctl start keepalived //重启服务(刷新:restart)
ipvsadm -Ln //查看LVS规则
ip a s //查看VIP设置
iptables -F //清空防火墙所有规则
客户端使用curl命令反复连接http://192.168.4.15
配置HAProxy负载平衡集群
前提 删除所有设备的VIP,清空所有LVS设置,关闭keepalived!!!
将前面实验VIP、LVS等实验的内容清理干净!!!!!!
ifdown lo:0 //停用lo:0
mcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.2.100/24 connection.autoconnect yes //配置ip(服务机2同样操作)
nmcli connection up eth1 //启用IP
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.5/24 connection.autoconnect yes //主机配置IP
nmcli connection up eth0 //启用IP
yum -y install httpd // 下载httpd
systemctl start httpd // 启动httpd
echo “192.168.2.100” > /var/www/html/index.html //服务机1和2操作
部署HAProxy服务器
yum -y install haproxy //下载haproxy
vim /etc/haproxy/haproxy.cfg //修改配置文件
global
log 127.0.0.1 local2 ##[err warning info debug]
chroot /usr/local/haproxy
pidfile /var/run/haproxy.pid ##haproxy的pid存放路径
maxconn 4000 ##最大连接数,默认4000
user haproxy
group haproxy
daemon ##创建1个进程进入deamon模式运行
defaults
mode http ##默认的模式mode { tcp|http|health }
option dontlognull ##不记录健康检查的日志信息
option httpclose ##每次请求完毕后主动关闭http通道
option httplog ##日志类别http日志格式
option forwardfor ##后端服务器可以从Http Header中获得客户端ip
option redispatch ##serverid服务器挂掉后强制定向到其他健康服务器
timeout connect 10000 #如果backend没有指定,默认为10s
timeout client 300000 ##客户端连接超时
timeout server 300000 ##服务器连接超时
maxconn 3000 ##最大连接数
retries 3 ##3次连接失败就认为服务不可用,也可以通过后面设置
#main frontend which proxys to the backends //以上的是默认配置,下面的可以修改
listen stats 0.0.0.0:1080 #监听端口
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm Haproxy Manager #进入管理解面查看状态信息
stats auth admin:admin #统计页面用户名和密码设置
listen websrv-rewrite 0.0.0.0:80 (或者*:80)
balance roundrobin
server web1 192.168.2.100:80 check inter 2000 rise 2 fall 5
成功链接2次 连续失败5次
server web2 192.168.2.200:80 check inter 2000 rise 2 fall 5
(访问后出现的图表)
Queue队列数据的信息(当前队列数量,最大值,队列限制数量);
Session rate每秒会话率(当前值,最大值,限制数量);
Sessions总会话量(当前值,最大值,总量,Lbtot: total number of times a server was selected选中一台服务器所用的总时间);
Bytes(入站、出站流量);
Denied(拒绝请求、拒绝回应);
Errors(错误请求、错误连接、错误回应);
Warnings(重新尝试警告retry、重新连接redispatches);
Server(状态、最后检查的时间(多久前执行的最后一次检查)、权重、备份服务器数量、down机服务器数量、down机时长)。
配置HAProxy负载平衡集群
HAProxy工作模式:
mode heep 客户机请求被深度分析后再发往服务器
mode tcp 4层服务,不检查七层服务
mode health 仅做健康状态检查,已经不建议使用
Keepalived HAProxy应用相关推荐
- Keepalived+HAProxy基于读写分离方式实现discuz论坛
一.测试环境: centos 6.6:使用8台虚拟机(上图) 分别对它们设置主机名: 主机名 ip地址 软件包 node1 172.16.16.11 keepalived+haproxy node2 ...
- 用 Keepalived+HAProxy 实现高可用负载均衡的配置方法
1. 概述 软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技术.Keepalived和HAProxy是众多软负载技术中的两种,其中Keepalived既可以实现负载均衡 ...
- Keepalived+Haproxy+Mysql(双主)高可用架构部署
Keepalived+Haproxy+Mysql(双主)高可用架构部署 一.背景 公司原部署的Mysql架构为keepalived+Mysql双主,但是这个架构有个缺陷是所有的读写请求都在一台机器上( ...
- keepalived + HAProxy + mysql高可用
文章目录 MySQL 高可用 简介 1. 环境准备 2. 搭建 mysql 双主复制 3. 安装 HAProxy 4. 安装 keepalived 4.1 修改配置文件 4.2 编写脚本 5. 测试 ...
- keepalived + haproxy 实现web 双主模型的高可用负载均衡--转
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...
- RabbitMQ负载均衡(3)——Keepalived+HAProxy实现高可用的负载均衡
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- keepalived+haproxy(双主)+nginx(静态)+lamp(动态)部署phpBB
简介: haproxy为高性能的反向代理服务器,在向后端server调度方面支持很多的调度算法:roundrobin,source,uri,url_param,hdr(),leastconn等,且支持 ...
- LNMP Keepalived Haproxy 笔记
以下内容只是本人实验的记录笔记.以下内容是参照某真实案例中的部分内容所攒写,当然本人对Linux各应用系统不是很熟悉,大家将就看看,有错的请指出.由于本人是在VMWare上仿照生产网络环境搭建的架构, ...
- Ceph RGW高可用HA集群keepalived+Haproxy
部署了入口服务的主机有 N 个.每个主机都有一个 haproxy 守护进程和一个 keepalived 守护进程.一次仅在其中一台主机上自动配置虚拟 IP. 每个keepalived 守护进程每隔几秒 ...
- kubernetes1.15.0高可用(keepalived+haproxy)
一.Master高可用 解决Master单节点,以及etcd单节点的问题,需要针对Master高可用,etcd数据要保持一致. [root@localhost ~]# hostnamectl set- ...
最新文章
- asp vb 插入,更新,删除数据库操作。
- DOM编程艺术12章
- 物理借助传感器用计算机测速度,用打点计时器测速度教案_物理_教学设计_人教版...
- 3张经典人事管理模板,HR都直呼很好用
- 《Webservice的应用与开发》学习笔记 ·002【XML进阶、XML Schema】
- 一文搞懂常见概率分布的直觉与联系
- MacOS Monterey12.3和Big Sur11.6.5离线安装包
- 系统集成项目管理工程师考试英语吗?
- VM14无法将网络更改为桥接状态:没有未桥接的主机网络适配器
- FPGA代码规则检查工具
- 【The Economist】2018经济学人杂志经济学人双语版阅读分享资源
- 实习生去公司都干些啥
- 【数学】求导公式+积分公式
- eclipse中如何把中文变成英文?
- IBM李永辉:智慧运算的软硬之道
- R902520808、AA10VSO140DRS/32R-VPB22U00E液压变量柱塞泵
- 如何使用新一代轻量级分布式日志管理神器 Graylog 来收集日志
- python,做一个汽车识别网,你还在担心认不出车标吗?
- 云顶之弈天选战神劫阵容攻略,天选战神劫如何玩?
- VSTO | 零基础开发个人专属PPT导航插件
热门文章
- 蛮好用的Gungho重点工作督查督办跟踪管理系统
- 如何区别聚合支付“一清二清”?
- 数据库学生表,课程表,选课表
- The CXX compiler identification is unknown
- iOS 此应用需要开发者更新以在此ios版本上运行
- [C#]C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)
- 我是一名朝九晚五的程序员
- 通过一道ARM PWN题引发的思考:jarvisOJ_typo
- “国六”新要求——基于OBD系统的量产车评估测试 (PVE)
- druid Hadoop-based Batch Ingestion