[原创]lvs+ospf+nginx实现高可用大流量web架构
lvs+ospf+nginx实现高可用大流量web架构配置总概述
架构图:

配置如下:
.quagga之zebra配置:
# cat /etc/quagga/zebra.conf
!
! Zebra configuration saved from vty
! // ::
!
hostname Router
password zebra
enable password zebra
!
interface eth0
ipv6 nd suppress-ra
!
interface eth1
ipv6 nd suppress-ra
!
interface lo
!
access-list deny any
!
route-map denyany deny
match ip address
!
!
ip protocol ospf route-map denyany
!
line vty
! .quagga之ospf配置:
# cat /etc/quagga/ospfd.conf
!
! Zebra configuration saved from vty
! // ::
!
hostname ospfd
password zebra
log stdout
log file /var/log/quagga/ospf.log
!
!
!
interface eth0
ip ospf hello-interval
ip ospf dead-interval
ip ospf priority !
router ospf
ospf router-id LOCAL_IP
network LOCAL_IP_net/mask area 0.0.0.0
network VIP1/ area 0.0.0.0
network VIP2/ area 0.0.0.0
network VIP3/ area 0.0.0.0
!
line vty
! .keepalive的配置:
# cat keepalived.conf
# Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
} virtual_server VIP1 {
delay_loop
lb_algo wrr
lb_kind TUN
persistence_timeout
protocol TCP real_server RS1_IP {
weight
TCP_CHECK {
connect_port
connect_timeout
nb_get_retry
delay_before_retry
}
}
real_server RS2_IP {
weight
TCP_CHECK {
connect_port
connect_timeout
nb_get_retry
delay_before_retry
}
}
} .lvs节点的vip配置脚本配置:
# cat lvs_ospf_vip
#!/bin/bash #description : VIP configuration.
VIP1=xxx.xxx.xxx.xxx
VIP2=xxx.xxx.xxx.xxx
VIP3=xxx.xxx.xxx.xxx STATUS=
case "$1" in
start)
ip addr add ${VIP1}/ dev lo:${VIP1#*.} label lo:${VIP1#*.} || STATUS=
ip addr add ${VIP2}/ dev lo:${VIP1#*.} label lo:${VIP2#*.} || STATUS=
ip addr add ${VIP3}/ dev lo:${VIP1#*.} label lo:${VIP3#*.} || STATUS= [ $STATUS -eq ] && echo 'Start VIP ok.' || echo 'Start VIP failed.'
;;
stop)
VIPS=`ip addr show label "lo:*"|awk '{print $2}'|cut -d'/' -f1`
for VIP in ${VIPS}
do
ip addr del ${VIP}/ dev lo || STATUS=
done
[ $STATUS -eq ] && echo 'Stop VIP ok.' || echo 'Stop VIP failed.'
;;
restart)
$ stop
$ start
;;
*)
echo 'Usage: $0 {start|stop|restart}'
exit
esac .nginx后端代理节点的lvs脚本配置:
# cat lvs_real_tun
#!/bin/bash #description : start realserver
VIP1=xxx.xxx.xxx.xxx
VIP2=xxx.xxx.xxx.xxx
VIP3=xxx.xxx.xxx.xxx
#/etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/modprobe ipip
/sbin/ifconfig tunl0 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
/sbin/ifconfig tunl0: $VIP2 broadcast $VIP2 netmask 255.255.255.255 up
/sbin/ifconfig tunl0: $VIP3 broadcast $VIP3 netmask 255.255.255.255 up
/sbin/route add -host $VIP1 dev tunl0
/sbin/route add -host $VIP2 dev tunl0:
/sbin/route add -host $VIP3 dev tunl0:
#echo "" >/proc/sys/net/ipv4/ip_forward
echo "" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "" >/proc/sys/net/ipv4/conf/tunl0/rp_filter
echo "" >/proc/sys/net/ipv4/conf/all/rp_filter
sysctl -p >/dev/null >&
/sbin/ifconfig eth0 mtu
;;
stop)
echo " stop LVS of RealServer"
echo "" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "" >/proc/sys/net/ipv4/conf/tunl0/rp_filter
echo "" >/proc/sys/net/ipv4/conf/all/rp_filter
/sbin/ifconfig tunl0 down
/sbin/modprobe -r ipip
/sbin/ifconfig eth0 mtu
;;
*)
echo "Usage: $0 {start|stop}"
exit
esac
[原创]lvs+ospf+nginx实现高可用大流量web架构的更多相关文章
- 基于keepalived 实现VIP转移,lvs,nginx的高可用
转自:http://www.tuicool.com/articles/eu26Vz 一.Keepalived 高可用集群的解决方案 二.VRRP的有限状态机 三.利用keepalived 实现主从VI ...
- LVS+keeplived+nginx+tomcat高可用、高性能jsp集群
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/557749 #!/bin ...
- lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(一) 简介
一. 为什么这样构架 1. 系统高可用性 2. 系统可扩展性 3. 负载均衡能力 LVS+keepalived能很好的实现以上的要求,keepalived提供健康检查,故障转移,提高系统的可用性!采用 ...
- LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)
一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...
- lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(二) LVS+Keepalived
一.安装ipvs sudo apt-get install ipvsadm 二.安装keepalived sudo apt-get install keepalived 三.创建keepalived. ...
- lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(三) Nginx
1. 安装 sudo apt-get install nginx 2. 配置nginx sudo gedit /etc/nginx/nginx.conf user www-data; worker_ ...
- Keepalived+Nginx实现高可用Web负载均衡
1.安装编译 Nginx 所需的依赖包# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zli ...
- Dubbo入门到精通学习笔记(十六):Keepalived+Nginx实现高可用Web负载均衡
文章目录 Keepalived+Nginx实现高可用Web负载均衡 Keepalived+Nginx实现高可用Web负载均衡 高可用架构篇 Keepalived + Nginx 实现高可用 Web 负 ...
- nginx keepalive 高可用
https://blog.csdn.net/u012410733/article/details/57078407 在网络中机器不可避免的出现单点故障,当我们使用nginx进行反向代理的时候如果出现了 ...
随机推荐
- ARTS 1.7 - 1.11
每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 题目: https://leetcod ...
- js中的scrollTop、offsetTop、clientTop
scrollHeight:获取对象可滚动的高度. scrollWidth:获取对象可滚动的宽度. scrollTop:获取对象最顶端与对象可见区域最顶端的距离. scrollLeft:获取对象左边界与 ...
- WPF 中RichTextBox控件用法细讲
1. 取得已被选中的内容:(1)使用RichTextBox.Document.Selection属性(2)访问RichTextBox.Document.Blocks属性的“blocks”中的Text ...
- 使用Disk2VHD进行P2V转换需要知道的一些事
据不可靠统计,有「无数」工具可以实现物理机到虚拟机的(P2V)转换,虽然有很多此类工具都被开发商帖上了高价标签,但至少来自微软 Sysinternals 工具集中的 Disk2VHD 还是可以免费使用 ...
- Spring之基于注解的注入
对于DI使用注解,将不再需要在Spring配置文件中声明Bean实例.Spring中使用注解,需要在原有Spring运行环境基础上再做一些改变,完成以下三个步骤. (1)导入AOP的Jar包.因为注解 ...
- 3020配置_Java_win10
1. 安装Java SE平台 1° 下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213315 ...
- 04-MySQL中的数据类型
1 整体说明MYsql的数据类型#1. 数字: 整型:tinyint int bigint 小数: float :在位数比较短的情况下不精准 double ...
- CQRS之旅——旅程7(增加弹性和优化性能)
旅程7:增加弹性和优化性能 到达旅程的终点:最后的任务. "你不能飞的像一只长着鹪鹩翅膀的老鹰那样."亨利·哈德逊 我们旅程的最后阶段的三个主要目标是使系统对故障更具弹性,提高UI ...
- 以实现MongoDB副本集状态的监控为例,看Telegraf系统中Exec输入插件如何编写部署
既有的Telegraf 关于MongoDB的输入插件很难实现对副本集节点状态的监控,副本集节点状态有 PRIMARY.SECONDARY.RECOVERYING.ARBITER 等.现在我们尝试通过 ...
- 大流量下的 ElasticSearch 搜索演进
这是泥瓦匠(bysocket.com)的第27篇精华分享 ES (ElasticSearch)是分布式搜索引擎.引擎太晦涩,其实类似一个 MySQL ,一个存储.方便提供下面功能: 近实时搜索 全文检 ...