热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

lvs+keepalived群集

一、top图:dir1:192.168.146.31dir2:192.168.146.32rs1:192.168.146.33rs2:192.168.146.34二、安装ipvsa

技术分享图片
一、top图:
dir1:192.168.146.31
dir2:192.168.146.32
rs1:192.168.146.33
rs2:192.168.146.34
二、安装ipvsadm和keepalived :
dir1:
#yum install gcc gcc-c++ -y
#yum install kernel-devel -y
#yum
-y install keepalived ipvsadm

#modprobe ip_vs
#yum install libnl -y
dir2:
#yum install gcc gcc-c++ -y
#yum install kernel-devel -y
#yum
-y install keepalived ipvsadm

#modprobe ip_vs
#yum install libnl -y
三、修改配置文件:

cd /etc/keepalived/
vim keepalived.conf

global_defs {

notification_email {

root@localhost #默认三个地址,修改可用地址

}

notification_email_from root@localhost

smtp_server localhost

smtp_connect_timeout 30

router_id xuegod63 #标识当前节点名字,两个节点的此项需要不相同。

}

#默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其挃定为 localhost, 我们也可以将通知信息的发送交给本地 sendmail 服务处理。

vrrp_instance apache { #定义一个实例,一个集群就是一个实例。 默认VI_1 可以随意改,双击可以定义2个实例。

state MASTER #指定 A 节点为主节点 备用节点上设置为 BACKUP 即可
interface eth0 #绑定虚拟 IP 的网络接口
virtual_router_id 51 #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一 VRRP 组
priority 100 #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低
advert_int 1 #组播信息发送间隔,两个节点设置必须一样
authentication { #设置验证信息,两个节点必须一致
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.146.30 #指定虚拟 IP, 两个节点设置必须一样
}

}

#类似添加虚拟一个服务 ipvsadm -A -t 192.168.1.70:80 -s rr

virtual_server 192.168.146.30 80 { #对虚拟IP63添加LVS相关内容

delay_loop 6 #Keepalived 多长时间监测一次 RS
lb_algo rr #分发算法
lb_kind DR #DR 模式
nat_mask 255.255.255.0
persistence_timeout 50 #同一IP 50秒内的请求都发到同个real server ,这个会影响LVS的 rr 调度算法, 同一 IP 超过 50 秒后,再次访问,才会被转发到另一台 real server 上。 persistence 持久性的意思,#如果要测试是否轮询就要删除这行代码
protocol TCP
real_server 192.168.146.33 80 { #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP 不端口之间用空格隔开
weight 1 #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器
TCP_CHECK { #这段内容手动添加,爸以前的内容删除
connect_timeout 3 #表示 3 秒无响应超时
nb_get_retry 3 #表示重试次数
delay_before_retry 3 #表示重试间隔
connect_port 80 #检测端口
}
}
real_server 192.168.146.34 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}

}

vrrp_instance nginx {

state BACKUP
interface eth0
virtual_router_id 52
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 11112
}
virtual_ipaddress {
192.168.146.29
}

}

virtual_server 192.168.146.29 80 {

delay_loop 6
lb_algo rr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50 #如果要测试是否轮询就要删除这行代码
protocol TCP

real_server 192.168.146.33 80 {

weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3

connect_port 80

}

}

real_server 192.168.146.34 80 {

weight 1
TCP_CHECK{
connect_timeout 3
nb_get_retry 3
delay_before_retry 3

connect_port 80

}
}

}
四、2个rs服务器上建立测试网页文件

yum install -y httpd php -y
service httpd restart
echo rs1 > /var/www/html/index.html

#echo rs2 > /var/www/html/index.html #第2台机器
五、rs1和rs2配置vip:

vim /etc/init.d/lvsrsdr

#!/bin/bash

#chkconfig:2345 80 90

#description:start relserver

VIP=192.168.146.30

source /etc/init.d/functions #加载环境变量(可以加载所有的环境变量)

case $1 in

start)

echo ‘start LVS of Realserver DR‘
/sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:1
echo ‘1‘ > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo ‘2‘ > /proc/sys/net/ipv4/conf/lo/arp_announce
echo ‘1‘ > /proc/sys/net/ipv4/conf/all/arp_ignore
echo ‘2‘ > /proc/sys/net/ipv4/conf/all/arp_announce
;;

stop)

/sbin/ifconfig lo:1 down
echo ‘Close LVS of Realserver DR‘
echo ‘0‘ > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo ‘0‘ > /proc/sys/net/ipv4/conf/lo/arp_announce
echo ‘0‘ > /proc/sys/net/ipv4/conf/all/arp_ignore
echo ‘0‘ > /proc/sys/net/ipv4/conf/all/arp_announce
;;

*)

echo "Usage:$0 (start|stop)"

exit 1

esac

chmod +x /etc/init.d/lvsrsdr

#/etc/init.d/lvsrsdr start

#chkconfig --add lvrsdr

#chkconfig lvsrsdr on

vim /etc/init.d/lvsrsdr2

#!/bin/bash

#chkconfig:2345 80 90

#description:start relserver

VIP=192.168.146.29

source /etc/init.d/functions #加载环境变量(可以加载所有的环境变量)

case $1 in

start)

echo ‘start LVS of Realserver DR‘
/sbin/ifconfig lo:2 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:2
echo ‘1‘ > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo ‘2‘ > /proc/sys/net/ipv4/conf/lo/arp_announce
echo ‘1‘ > /proc/sys/net/ipv4/conf/all/arp_ignore
echo ‘2‘ > /proc/sys/net/ipv4/conf/all/arp_announce
;;

stop)

/sbin/ifconfig lo:2 down
echo ‘Close LVS of Realserver DR‘
echo ‘0‘ > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo ‘0‘ > /proc/sys/net/ipv4/conf/lo/arp_announce
echo ‘0‘ > /proc/sys/net/ipv4/conf/all/arp_ignore
echo ‘0‘ > /proc/sys/net/ipv4/conf/all/arp_announce
;;

*)

echo "Usage:$0 (start|stop)"

exit 1

esac

chmod +x /etc/init.d/lvsrsdr2

#/etc/init.d/lvsrsdr start

#chkconfig --add lvrsdr2

#chkconfig lvsrsdr2 on

打开一个测试机器 :

curl http://192.168.146.29

或者:

elinks http://192.168.146.30 -dump


推荐阅读
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 负载均衡_Nginx反向代理动静分离负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第二部分
    nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解 ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • VS用c语言连接mysql,c语言连接mysql完整演示
    #include#includeintmain(){MYSQL*conn;创建一个指向mysql数据类型的指针connmysql_init(NULL);mysql的初始化if(!c ... [详细]
author-avatar
记录生活传奇_909_874
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有