LVS+keepalived+nginx+tomcat部署实现

简介:

# 拓扑如下所示

wKioL1QOmLrDoQ2uAAHpCQhZ_Bk403.jpg

# 节点分布情况

LVS-dr-master

    eth0: 192.168.146.141

  

LVS-dr-slave

    eth0: 192.168.146.142



nginx1:

    eth0: 192.168.146.139

nginx2:

    eth0: 192.168.146.140

tomcat1:

    eth0: 192.168.146.138 启用了4个tomcat


VIP: 192.168.146.200


# 具体配置

### lvs master

### 1、安装ipvsadm、keepalived


1
yum install -y keepalived ipvsadm



### 2、使用keepalived来管理lvs

脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
global_defs
{
router_id master_210
}
  
vrrp_instance aiyou {
state MASTER
interface eth0
virtual_router_id 100    #这个数值 master和slave必须统一
priority 151     #这个数值决定哪台服务器是master 
advert_int 1
authentication {
         auth_type PASS
         auth_pass 123456
         }
virtual_ipaddress {
         192.168.146.200
         }
}
virtual_server 192.168.146.200 80 {
             delay_loop 6
             lb_algo wrr
             lb_kind DR
#            persistence_timeout 50
             protocol TCP
real_server 192.168.146.139 80 {
                 weight 1
                 TCP_CHECK {
                     connect_timeout 3
                     nb_get_retry 3
                     delay_before_retry 3
                     connect_port 80
                 }
             }
real_server 192.168.146.140 80 {
                 weight 1
                 TCP_CHECK {
                     connect_timeout 3
                     nb_get_retry 3
                     delay_before_retry 3
                     connect_port 80
                 }
             }
}


### lvs slave

### 1、安装ipvsadm、keepalived


1
yum install -y keepalived ipvsadm



### 2、使用keepalived来管理lvs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
global_defs
{
router_id slave_211
}
  
vrrp_instance aiyou {
state MASTER
interface eth0
virtual_router_id 100    #这个数值 master和slave必须统一
priority 150     #这个数值决定哪台服务器是master 这里我们比master数值低,所以角色是backup,
advert_int 1
authentication {
         auth_type PASS
         auth_pass 123456
         }
virtual_ipaddress {
         192.168.146.200
         }
}
virtual_server 192.168.146.200 80 {
             delay_loop 6
             lb_algo wrr
             lb_kind DR
#            persistence_timeout 50
             protocol TCP
real_server 192.168.146.139 80 {
                 weight 1
                 TCP_CHECK {
                     connect_timeout 3
                     nb_get_retry 3
                     delay_before_retry 3
                     connect_port 80
                 }
             }
real_server 192.168.146.140 80 {
                 weight 1
                 TCP_CHECK {
                     connect_timeout 3
                     nb_get_retry 3
                     delay_before_retry 3
                     connect_port 80
                 }
             }
}


### nginx1

### nginx上要跑个脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash  
#   
# Script to start LVS DR real server.   
# description: LVS DR real server   
#   
.  /etc/rc.d/init.d/functions
VIP=192.168.146.200   #这里根据需要改成自己的VIP地址
host=`/bin/hostname`
case "$1" in  
start)   
        # Start LVS-DR real server on this machine.   
         /sbin/ifconfig lo down   
         /sbin/ifconfig lo up   
         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
         /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up  
         /sbin/route add -host $VIP dev lo:0
;;  
stop)
         # Stop LVS-DR real server loopback device(s).  
         /sbin/ifconfig lo:0 down   
         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
;;  
status)
         # Status of LVS-DR real server.  
         islothere=`/sbin/ifconfig lo:0 | grep $VIP`   
         isrothere=`netstat -rn | grep "lo:0" | grep $VIP`   
         if [ ! "$islothere" -o ! "isrothere" ];then   
             # Either the route or the lo:0 device   
             # not found.   
             echo "LVS-DR real server Stopped."   
         else   
             echo "LVS-DR real server Running."   
         fi   
;;   
*)   
             # Invalid entry.   
             echo "$0: Usage: $0 {start|status|stop}"   
             exit 1   
;;   
esac


### nginx2

### nginx上要跑个脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash  
#   
# Script to start LVS DR real server.   
# description: LVS DR real server   
#   
.  /etc/rc.d/init.d/functions
VIP=192.168.146.200   #这里根据需要改成自己的VIP地址
host=`/bin/hostname`
case "$1" in  
start)   
        # Start LVS-DR real server on this machine.   
         /sbin/ifconfig lo down   
         /sbin/ifconfig lo up   
         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
         /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up  
         /sbin/route add -host $VIP dev lo:0
;;  
stop)
         # Stop LVS-DR real server loopback device(s).  
         /sbin/ifconfig lo:0 down   
         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
;;  
status)
         # Status of LVS-DR real server.  
         islothere=`/sbin/ifconfig lo:0 | grep $VIP`   
         isrothere=`netstat -rn | grep "lo:0" | grep $VIP`   
         if [ ! "$islothere" -o ! "isrothere" ];then   
             # Either the route or the lo:0 device   
             # not found.   
             echo "LVS-DR real server Stopped."   
         else   
             echo "LVS-DR real server Running."   
         fi   
;;   
*)   
             # Invalid entry.   
             echo "$0: Usage: $0 {start|status|stop}"   
             exit 1   
;;   
esac


### 后端tomcat安装省略


采用一机多实例模式(非多虚拟主机)


### 测试


### master上验证

1
2
3
4
5
6
7
8
[root@lvs1 ~]# 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.146.200:80 wrr
   -> 192.168.146.139:80           Route   1      0          0         
   -> 192.168.146.140:80           Route   1      0          0         
[root@lvs1 ~]#


### slave上验证

1
2
3
4
5
6
7
8
[root@lvs2 ~]# 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.146.200:80 wrr
   -> 192.168.146.139:80           Route   1      0          0         
   -> 192.168.146.140:80           Route   1      0          0         
[root@lvs2 ~]#



本文转自lovelace521 51CTO博客,原文链接:http://blog.51cto.com/lovelace/1550188,如需转载请自行联系原作者

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
缓存 前端开发 JavaScript
tomcat核心技术+Nginx性能调优技术
而Tomcat的基本配置,每个配置项也基本上对应了Tomcat的组件结构,如果要用一张图来形象展现一下Tomcat组成的话
36 1
|
2月前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
现在,你已经成功在Kubernetes集群上部署了Nginx应用。通过访问Service的外部IP地址,你可以访问Nginx服务。
41 4
|
2月前
|
Java 应用服务中间件 Apache
简介Nginx,Tomcat和 Apache
简介Nginx,Tomcat和 Apache
简介Nginx,Tomcat和 Apache
|
2月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
39 0
|
17天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
78 0
|
1天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
3天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
15 0
|
6天前
|
Java 应用服务中间件 Linux
阿里云服务器部署多个tomcat
阿里云服务器部署多个tomcat
|
1月前
|
应用服务中间件 Linux nginx
web后端-linux-nginx-1.18操作命令和部署
web后端-linux-nginx-1.18操作命令和部署
|
1月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
108 1

热门文章

最新文章