[原创]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进行反向代理的时候如果出现了 ...
随机推荐
- MySql5.7.11 for Windows 安装精简版(一)
原文:MySql5.7.11 for Windows 安装精简版(一) 从官网下载压缩包,我下载的是64位的.解压. 精简: -Bin下只保留 mysqladmin.exe mysqld.exe my ...
- WPF Build Action
None: The file is not included in the project output group and is not compiled in the build process. ...
- Delphi的对象注销方法Destroy和free
当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来.您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存. Delphi的注销方法有两个:Destroy和Free. ...
- Qt Quick 事件处理之信号与槽(foruok的博客)
前面两篇文章<QML 语言基础>和<Qt Quick 简单教程>中我们介绍了 QML 语言的基本语法和 Qt Quick 的常见元素,亲们,通过这两篇文章,您应该已经可以完成简 ...
- Qt使用windows API获取程序运行时占用内存 good
使用的是psapi.h中的GetProcessMemoryInfo函数,但是运行到该函数时就强制退出了. 后来,百度到原因是 原来Qt编译时加了-mthread,createprocess时要使的Ha ...
- 使用WebBrowser并调用网页中的JS函数
在界面上拖入QAxWidget,注意这里不建议直接在UI设计界面指定控件,否则可能引起QtCreator崩溃 建议在代码中动态设置,如: ui->axWidget->setControl( ...
- BI-学习之 商业智能平台的引入(传统关系型数据库的问题)
早在 SQL Server 2005里面就有了这种 完整的商业智能平台了,那时候Nosql什么的都还停留在概念性的提出阶段,发展至2009年才一下子蹦了出来变得众所周知了.当然这个要扯就扯远了,咱们还 ...
- PHP发送邮件功能实现(使用163邮箱)
第一步 我用的是163邮箱发送邮件,做一个尝试,在尝试之前,需要要开启163邮箱的授权码如图所示,请记住您的授权码,将在之后的步骤中用到 第二步 需要下载一个类PHPMailer,我有这个资源已经上传 ...
- Scala 学习之路(七)—— 常用集合类型之 Map & Tuple
一.映射(Map) 1.1 构造Map // 初始化一个空map val scores01 = new HashMap[String, Int] // 从指定的值初始化Map(方式一) val sco ...
- 浅谈IHttpHandler
在Web应用开发或接口开发时,处理请求接口IHttpHandler随处可见,那么我们这次来简单聊一下这个接口. ASP.NET响应Http请求时常用的两个处理接口,分别是IHttpHandler和IH ...