博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lvs+keepalived+nginx+tomcat高可用高性能集群部署
阅读量:7232 次
发布时间:2019-06-29

本文共 4224 字,大约阅读时间需要 14 分钟。

  hot3.png

2台前端 keepalived+lvs,热备的方式,保证一台lvs前端能正常访问就行,如果一台down,另外一台热备升级到master主机

master: 192.168.1.210 ubuntu 12.0.4
salve: 192.168.1.211 ubuntu 12.0.4

后端2台web服务器通过lvs的算法轮询被访问

web1: 192.168.1.204 centos 5.10 nginx+tomcat
web2: 192.168.1.206 centos 5.10 nginx+tomcat

vip: 192.168.1.207

1:首先 web1和web2都不用装ipvsadm和keepalived,只要启用一个脚本即可,

当然你已经把nginx+tomcat已经配置完,并能正常访问页面

vim realserver.sh
#!/bin/bash  #  # Script to start LVS DR real server.  # description: LVS DR real server  #  . /etc/rc.d/init.d/functions VIP=192.168.1.207 #这里根据需要改成自己的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
chmod +x realserver.sh
./realserver.sh start

可通过ifconfig和route -n来查询刚才脚本实现的功能

如果可以把此脚本放在启动时运行

ifconfig

route -n

2:然后再master和salve分别安装ipvsadm和keepalived

yum install -y keepalived ipvsadm (centos redhat)

或者
apt-get install keepalived ipvsadm (debian ubuntu)

安装完ipvsadm和keepalived,不用配置lvs,直接用keepalived来启用lvs就行

在master主机设置:

vim /etc/keepalived/keepalived.conf
global_defs{router_id master_210} vrrp_instance shengzc {state MASTERinterface eth0virtual_router_id 100    #这个数值 master和slave必须统一priority 151     #这个数值决定哪台服务器是master advert_int 1authentication {        auth_type PASS        auth_pass 123456        }virtual_ipaddress {        192.168.1.207        }}virtual_server 192.168.1.207 80 {            delay_loop 6            lb_algo wrr            lb_kind DR#            persistence_timeout 50            protocol TCPreal_server 192.168.1.204 80 {                weight 1                TCP_CHECK {                    connect_timeout 3                    nb_get_retry 3                    delay_before_retry 3                    connect_port 80                }            }real_server 192.168.1.206 80 {                weight 1                TCP_CHECK {                    connect_timeout 3                    nb_get_retry 3                    delay_before_retry 3                    connect_port 80                }            }}

启动keepalived

/etc/init.d/keepalived start

在slave主机设置:

vim /etc/keepalived/keepalived.conf
global_defs{router_id slave_211} vrrp_instance shengzc {state MASTERinterface eth0virtual_router_id 100    #这个数值 master和slave必须统一priority 150     #这个数值决定哪台服务器是master 这里我们比master数值低,所以角色是backup,advert_int 1authentication {        auth_type PASS        auth_pass 123456        }virtual_ipaddress {        192.168.1.207        }}virtual_server 192.168.1.207 80 {            delay_loop 6            lb_algo wrr            lb_kind DR#            persistence_timeout 50            protocol TCPreal_server 192.168.1.204 80 {                weight 1                TCP_CHECK {                    connect_timeout 3                    nb_get_retry 3                    delay_before_retry 3                    connect_port 80                }            }real_server 192.168.1.206 80 {                weight 1                TCP_CHECK {                    connect_timeout 3                    nb_get_retry 3                    delay_before_retry 3                    connect_port 80                }            }}

启动keepalived

/etc/init.d/keepalived start

可以运行 ipvsadm -ln 来查看是否启用

ipvsadm

好了,现在我们直接访问 http://192.168.1.207 就实现了,高可用性,高负载的集群

转载于:https://my.oschina.net/liting/blog/384369

你可能感兴趣的文章
switching to webpack -- 初探webpack
查看>>
JDK 11版本时间表
查看>>
记一次快速完成英雄联盟活动脚本
查看>>
canvas动画时钟
查看>>
【译】发送表单数据
查看>>
log4j2的GelfAppender
查看>>
NSQ 源码阅读(一) 相关概念理解
查看>>
JavaScript中的数据类型及其检测
查看>>
Angular2基础之展示数据
查看>>
Android单元测试(七):Robolectric,在JVM上调用安卓的类
查看>>
不再彷徨:完全弄懂JavaScript中的this(译文总结)
查看>>
ES6部分方法点评(一)
查看>>
初学RequireJS
查看>>
Windows应用程序快捷方式创建工具
查看>>
使用 GNU m4 为 Markdown 添加目录支持
查看>>
Ubuntu下crontab命令的用法
查看>>
【系统架构师修炼之道】(3):绪论——系统架构发展历史
查看>>
【PHP】PSR简要规范
查看>>
拓扑排序\有向无环图判断 及经典问题 - 选课
查看>>
中国联通与阿里云达成合作,推动5G+新媒体产业发展 ...
查看>>