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

LVS服务器简单搭建

LVS是LinuxVirtualServer的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。可以在UNIXlinux平台下实现负载均衡集群功能。该项目在1998年5月

LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。可以在UNIX/linux平台下实现负载均衡集群功能。该项目在1998年5月由章文嵩博士组织成立,是中国国内最早出现的自由软件项目之一。

LVS一般分为三个模式,DR模式也就是路由模式,这样是用的最多的一种模式。NAT模式,tunnel模式也就是隧道模式。 也有说四种的,就是多了FULL NAT模式。

我们这里的实验也是一个简单实验,显示一个路由模式,也就是1台LVS带动两台nginx服务器。

 

大概就是这样一个简单拓扑。

先安装LVS吧

安全装备命令。

     lsmod |grep ip_vs
     uname -rm

     ls /usr/src/kernels/`uname -r`
     ln -s /usr/src/kernels/`uname -r` /usr/src/linux
因为LVS是基于内核的,所以要建立这么一个连接,注意最后的链接应该是蓝色显示

 

 如果显示不出内核,就要安装一个包

yum  install  kernel-devel -y

开始源码安装LVS

yum  install libnl* libpopt*
yum install    popt-static

yum install gcc
yum install gcc+

先提前把这些包给装了。然后下载软件

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
ls
tar zxf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26/
mkdir /application
cd /application/
mv /software/ipvsadm-1.26/ .
cd ipvsadm-1.26/
make
echo $?
make install

 

 

 

这样就安装好了。

然后要设置VIP

ip addr add 192.168.19.44/24  dev  ens192

 

 添加路由表

 

 

在LVS先清空。

 

 用ipvsadm -C 命令

然后开始配置两台主机上去

ipvsadm --set 30 5 60
ipvsadm -A -t 192.168.19.44:80 -s rr -p 20
ipvsadm -a -t 192.168.19.44:80 -r 192.168.19.39 -g -w 1
ipvsadm -a -t 192.168.19.44:80 -r 192.168.19.38 -g -w 1
ipvsadm -L -n

 

 

 

然后就是要在RIP上做ARP的抑制和绑定VIP。

ip addr show
ip addr add 192.168.19.44/32 dev lo:0
route add -host 192.168.19.44 dev lo
route -n

下面是做ARP抑制
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

 

可以开始测试效果了。

 

 

 

 

同一个地址访问出不同的效果。

证明负载均衡有在作用了。

 

 

 

这样最简单的两台WEB的负载均衡就可以了。当然我们最佳的方式,是搭配keepalived来实现高可用是最好的。

但我这里没有列出来,高可用又分了单实例和多实例。

这个后面还要好好学习一下。

监测命令 watch -n 1 ipvsadm -L -n

 

ARP抑制的选项说明。

 

 

 

这里写一个非常简单的IPVS启动和停止的脚本。

#!/bin/bash
.
/etc/init.d/functions
VIP
=192.168.19.44
PORT
=80
RIP
=(
192.168.19.38
192.168.19.39
)
start(){
ifconfig ens192:0 $VIP/24 up
route add
-host $VIP dev ens192
ipvsadm
-C
ipvsadm
--set 30 5 60
ipvsadm
-A -t $VIP:$PORT -s rr -p 20
for (( i=0;i<${#RIP[*]};i++))
do
ipvsadm
-a -t $VIP:$PORT -r ${RIP[$i]} -g -w 1
done
}
stop(){
ipvsadm
-C
ifconfig ens192:0 down
route del
-host $VIP dev ens192
}
case "$1" in
start)
start
echo -e "\e[32m ipvs is started \e[0m"
;;
stop)
stop
echo -e "\e[31m ipvs is stoped \e[0m"
;;
restart)
stop
echo -e "\e[31m ipvs is stop \e[0m"
start
echo -e "\e[32m ipvs is start \e[0m"
;;
*)
echo -e "\e[42m USAGE:$0 {start|stop|restart} \e[0m"
esac

 



推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
author-avatar
Mr_ZERO0000000
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有