lvs+nginx配置

 当做为负载均衡服务器的nginx和lvs处理相同的请求时,所有的请求和响应流量都会经过nginx;但是使用lvs时,仅请求流量经过lvs的网络,响应流量由后端服务器的网络返回。
 当作为后端的服务器规模庞大时,nginx的网络带宽就成了一个巨大的瓶颈。
 但是仅仅使用lvs作为负载均衡的话,一旦后端接受到请求的服务器出了问题,那么这次请求就失败了。但是如果在lvs的后端在添加一层nginx(多个),每个nginx后端再有几台应用服务器,那么结合两者的优势,既能避免单nginx的流量集中瓶颈,又能避免单lvs一次请求失败

使用linux 版本 centos7 3.10.0-123.el7.x86_64
1、配置虚拟ip

// 修改网络配置
cd /etc/sysconfig/network-scripts
//添加配置虚拟ip(192.168.106.188) 到 ifcfg-eno16777736,结果如下
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="acdfaeae-a328-433d-a42f-ce0511f467c7"
DEVICE="eno16777736"
ONBOOT="yes"
IPADDR="192.168.106.145"
IPADDR1="192.168.106.188"
// 重新加载配置
service network restart
//显示OK后,查看虚拟ip是否配置成功,ip addr 如下图(192.168.106.188)已经配置成功
[root@localhost local]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:d1:d9:ee brd ff:ff:ff:ff:ff:ff
    inet 192.168.106.145/24 brd 192.168.106.255 scope global eno16777736
       valid_lft forever preferred_lft forever
    inet 192.168.106.188/24 brd 192.168.106.255 scope global secondary eno16777736
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed1:d9ee/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost local]#

2、ipvsadm安装(192.168.106.145节点)

// 在网络通的前提下安装命令,输入y
yum install ipvsadm
//安装完成后,查看如下:
ipvsadm -Ln

[root@localhost local]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

3、进入nginx 节点(192.168.106.157、192.168.106.159)

//修改网络输出配置
cd /etc/sysconfig/network-scripts
cp ifcfg-lo ifcfg-lo:1
vim  ifcfg-lo:1
//修改如下
DEVICE=lo:1
IPADDR=192.168.106.188
NETMASK=255.255.255.255
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
//esc + :wq 保存 ,重新加载配置
ifup lo //或者service network restart
//ip addr 查看网络配置
[root@localhost local]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet 192.168.106.188/32 brd 192.168.106.188 scope global lo:1
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:8f:3e:21 brd ff:ff:ff:ff:ff:ff
    inet 192.168.106.159/24 brd 192.168.106.255 scope global dynamic ens33
       valid_lft 1131sec preferred_lft 1131sec
    inet6 fe80::20c:29ff:fe8f:3e21/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost local]#

4、配置ARP 响应级别(处理请求)arp-ignore
进入nginx 节点(192.168.106.157、192.168.106.159)

// 在 /etc/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
// 刷新使配置生效
sysctl -p

5、配置响应处理路由

// 添加响应处理路由
route add -host 192.168.106.188 dev lo:1
//route -n 查看
[root@localhost local]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.106.2   0.0.0.0         UG    1024   0        0 ens33
192.168.106.0   0.0.0.0         255.255.255.0   U     0      0        0 ens33
192.168.106.188 0.0.0.0         255.255.255.255 UH    0      0        0 lo
[root@localhost local]#
//配置开机自动加载
echo "route add -host 192.168.106.188 dev lo:1" >> /etc/rc.local

6、ipvsadm 配置(DR模式)

//ipvsadm 配置: -A 添加 -t tcp服务 -s 负载均衡算法 -rr 轮询算法
ipvsadm -A -t 192.168.106.188:80 -s rr

//ipvsadm -Ln 查看集群
[root@localhost local]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.106.188:80 rr


//添加节点到集群 -a 服务器节点 -t tcp服务 -r real server -g DR模式
ipvsadm -a -t 192.168.106.188:80 -r 192.168.106.157:80 -g
ipvsadm -a -t 192.168.106.188:80 -r 192.168.106.159:80 -g

//ipvsadm -Ln 查看集群
[root@localhost local]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.106.188:80 rr
  -> 192.168.106.157:80           Route   1      0          0         
  -> 192.168.106.159:80           Route   1      0          0         
[root@localhost local]#

7、至此lvs配置完成,修改win10 hosts配置文件,添加如下:

// C:\Windows\System32\drivers\etc
192.168.106.188  www.wshop.com

浏览器访问http://www.wshop.com/wshop/
lvs将轮询访问两台nginx服务器,nginx相关配置请查看nginx配置篇

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一种常见的架构组合,用于构建高可用、负载均衡和容灾的Web应用系统。下面是每个组件的简要介绍: LVS(Linux Virtual Server):LVS是一个在Linux内核中实现的负载均衡工具。它通过将输入流量分发到多个后端服务器,以提高系统的性能和可靠性。 keepalived:keepalived是一个基于VRRP(Virtual Router Redundancy Protocol)的高可用性解决方案。它可以监控服务器的健康状态,并在主服务器故障时自动切换到备份服务器。 nginxnginx是一个高性能的HTTP和反向代理服务器。它可以同时处理静态和动态内容,并提供负载均衡和高可用性功能。 tomcat:tomcat是一个开源的Java Servlet容器,用于运行Java Web应用程序。它可以与nginx配合使用,处理动态内容。 mysql:mysql是一个流行的关系型数据库管理系统,常用于存储应用程序的数据。 MHA(MySQL Master High Availability):MHA是一个用于MySQL主从复制环境的高可用性解决方案。它可以自动监控主服务器的健康状态,并在主服务器故障时自动切换到备份服务器。 NFS(Network File System):NFS是一种分布式文件系统协议,允许远程服务器通过网络访问共享文件。在这种架构中,NFS可以用于共享静态文件或其他数据,以提供一致的内容访问。 这种架构组合可以提供高可用性、负载均衡和容灾能力,适用于大型Web应用系统。但是具体的实施和配置需要根据具体需求和环境来确定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值