JavaEE:搭建LVS+Nginx

一、LVS说明:

1.LVS三种模式:

(1)NAT模式:

非大并发适用,请求:外网 -> LVS虚拟IP -> 内网服务器群,响应:内网服务器群 -> LVS虚拟IP -> 外网,服务器群隐藏在内网。

(2)TUN模式:

大并发适用,请求:外网 -> LVS -> 服务器群,响应:服务器群 -> 外网,每台服务器要有独立网卡,与每个请求建立独立通道,服务器群暴露在外网。

(3)DR模式:

大并发适用,请求:外网 -> LVS虚拟IP -> 内网服务器群,响应:服务器群 -路由通道> 外网,服务器群共用一条路由通道(对外为虚拟IP),服务器群隐藏在内网。

2.ARP配置级别:

(1)arp-ignore配置ARP请求响应级别:

0: 本机配置IP,就能响应请求

1:请求的目标地址到达对应网络接口,才会响应请求

(2)arp-announce配置ARP通告级别:

0:本机上所有接口对外通告,所有网卡都能接受请求通告

1:会避免本网卡与不匹配的目标进行通告

2:只在本网卡通告

二、搭建1台LVS+2台Nginx(DR模式):

Nginx安装:JavaEE:Nginx安装/启动/停止/配置_a526001650a的专栏-CSDN博客说明:使用场景:http服务器、虚拟主机、反向代理服务器、负载均衡服务器。支持5万并发连接。一、依赖环境安装:1.安装gcc环境:[root@www ~]# yum -y install gcc-c++2.安装Perl库(正则表达式库):[root@www ~]# yum install -y pcre pcre-devel3.安装zlib(压缩/解压缩工具):...https://blog.csdn.net/a526001650a/article/details/103785122

LVS主机IP:   192.168.233.130

LVS主机虚拟IP:192.168.233.150

Nginx1主机IP:192.168.233.129

Nginx2主机IP:192.168.233.131

1.LVS主机配置:

(1)关闭网络配置管理器:

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl disable NetworkManager

(2)增加虚拟IP配置,拷贝ifcfg-ens33并命名为ifcfg-eth0:2(cd到/etc/sysconfig/network-scripts/目录):

[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:2

修改内容如下(vi ifcfg-ens33:2):

BOOTPROTO="static"
DEVICE="ens33:2"
ONBOOT="yes"
IPADDR=192.168.233.150    #本机虚拟IP
NETMASK=255.255.255.0

(3)重启网络让配置生效:

[root@localhost network-scripts]# service network restart

(4)查看效果:

[root@localhost network-scripts]# ip addr

2.Nginx1主机配置(绑定150虚拟IP):

(1)关闭网络配置管理器:

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl disable NetworkManager

(2)增加虚拟网络子接口(绑定150虚拟IP),拷贝ifcfg-lo并命名为ifcfg-lo:2(cd到/etc/sysconfig/network-scripts/目录):

[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:2

修改内容如下(vi ifcfg-lo:2):

DEVICE=lo:2
IPADDR=192.168.233.150        #配置LVS虚拟IP
NETMASK=255.255.255.255
NETWORK=127.0.0.0
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback

(3)刷新生效:

[root@localhost network-scripts]# ifup lo

(4)ARP配置,修改sysctl.conf配置(cd到/etc目录):

[root@localhost etc]# vi sysctl.conf

内容如下:

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2

(5)刷新生效sysctl.conf配置:

[root@localhost etc]# sysctl -p

(6)添加路由,连接LVS虚拟IP:

[root@localhost etc]# echo "route add -host 192.168.233.150 dev lo:2" >> /etc/rc.local

查看路由:

[root@localhost etc]# route -n

3.Nginx2主机配置(绑定150虚拟IP):

(1)关闭网络配置管理器:

[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl disable NetworkManager

(2)增加虚拟网络子接口(绑定150虚拟IP),拷贝ifcfg-lo并命名为ifcfg-lo:2(cd到/etc/sysconfig/network-scripts/目录):

[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:2

修改内容如下(vi ifcfg-lo:2):

DEVICE=lo:2
IPADDR=192.168.233.150        #配置LVS虚拟IP
NETMASK=255.255.255.255
NETWORK=127.0.0.0
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback

(3)刷新生效ifcfg-lo:2:

[root@localhost network-scripts]# ifup lo

(4)ARP配置,修改sysctl.conf配置(cd到/etc目录):

[root@localhost etc]# vi sysctl.conf

内容如下:

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2

(5)刷新生效sysctl.conf配置:

[root@localhost etc]# sysctl -p

(6)添加路由,连接LVS虚拟IP:

[root@localhost etc]# echo "route add -host 192.168.233.150 dev lo:2" >> /etc/rc.local

查看路由:

[root@localhost etc]# route -n

三、利用ipvsadm工具配置集群:

1.ipvsadm工具安装:

(1)安装:

[root@localhost ~]# yum install ipvsadm

(2)查看版本号与集群列表与状态:

[root@localhost ~]# ipvsadm -Ln
[root@localhost ~]# ipvsadm -Ln --stats

(3)查看帮助文档:

[root@localhost ~]# ipvsadm -h
[root@localhost ~]# man ipvsadm

(4)查看持久化连接信息:

[root@localhost ~]# ipvsadm -Ln --persistent-conn

(5)查看请求过期时间(显示源ip和目标ip):

[root@localhost ~]# ipvsadm -Lnc

(6)查看过期时间:

[root@localhost ~]# ipvsadm -Ln --timeout

(7)重启ipvsadm:

[root@localhost ~]# service ipvsadm restart

2.添加集群(-A添加集群,-t为TCP协议,-s rr设置负载均衡为轮询):

[root@localhost ~]# ipvsadm -A -t 192.168.233.150:80 -s rr

3.为集群添加Nginx1节点与Nginx2节点:

(1)Nginx1节点(-a添加节点,-t为TCP协议,-r为Nginx1主机IP+端口,-g设为DR模式):

[root@localhost ~]# ipvsadm -a -t 192.168.233.150:80 -r 192.168.233.129:80 -g

(2)Nginx2节点(-a添加节点,-t为TCP协议,-r为Nginx2主机IP+端口,-g设为DR模式):

[root@localhost ~]# ipvsadm -a -t 192.168.233.150:80 -r 192.168.233.131:80 -g

4.保存以上规则:

[root@localhost network-scripts]# ipvsadm -S

5.浏览器访问LVS虚拟IP查看轮询打开Nginx1与Nginx2主页的效果:

(1)修改持久化超时时间(默认300秒,此处为了看效果改为2秒):

[root@localhost network-scripts]# ipvsadm -E -t 192.168.233.150:80 -s rr -p 2

(2)修改tcp、tcpfin、udp过期时间:

[root@localhost network-scripts]# ipvsadm --set 1 1 1

(3)用浏览器隔几秒访问LVS虚拟IP,能看到轮询显示Nginx1与Nginx2主页的效果

http://192.168.233.150

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值