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架构的更多相关文章

  1. 基于keepalived 实现VIP转移,lvs,nginx的高可用

    转自:http://www.tuicool.com/articles/eu26Vz 一.Keepalived 高可用集群的解决方案 二.VRRP的有限状态机 三.利用keepalived 实现主从VI ...

  2. LVS+keeplived+nginx+tomcat高可用、高性能jsp集群

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/557749 #!/bin ...

  3. lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(一) 简介

    一. 为什么这样构架 1. 系统高可用性 2. 系统可扩展性 3. 负载均衡能力 LVS+keepalived能很好的实现以上的要求,keepalived提供健康检查,故障转移,提高系统的可用性!采用 ...

  4. LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)

    一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...

  5. lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(二) LVS+Keepalived

    一.安装ipvs sudo apt-get install ipvsadm 二.安装keepalived sudo apt-get install keepalived 三.创建keepalived. ...

  6. lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(三) Nginx

    1.  安装 sudo apt-get install nginx 2. 配置nginx sudo gedit /etc/nginx/nginx.conf user www-data; worker_ ...

  7. Keepalived+Nginx实现高可用Web负载均衡

    1.安装编译 Nginx 所需的依赖包# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zli ...

  8. Dubbo入门到精通学习笔记(十六):Keepalived+Nginx实现高可用Web负载均衡

    文章目录 Keepalived+Nginx实现高可用Web负载均衡 Keepalived+Nginx实现高可用Web负载均衡 高可用架构篇 Keepalived + Nginx 实现高可用 Web 负 ...

  9. nginx keepalive 高可用

    https://blog.csdn.net/u012410733/article/details/57078407 在网络中机器不可避免的出现单点故障,当我们使用nginx进行反向代理的时候如果出现了 ...

随机推荐

  1. no identifier specified for entity错误

    未给entity类添加主键造成. 之前出现这个错误是因为忘记给id添加@Id标签.

  2. Java 线程池(一):开篇及Executor整体框架介绍

    一.开篇 线程池.数据库连接池,在平时的学习中总能接触到这两个词,但它们到底是什么?和线程,数据库连接有什么关系?为什么需要“池”?“池”的概念及作用是什么?要弄清楚这些问题,就要深入到“池”的实现中 ...

  3. SignalR---服务端

    原文:SignalR---服务端 前段时间把SignalR的官网教程大致看了一下,算是翻译了一遍,加上了自己的个人理解, 一下上传三个文件,分别是服务端.web客户端.DOTNET客户端相关文档,供大 ...

  4. Android零基础入门第47节:自动完成文本框AutoCompleteTextView

    原文:Android零基础入门第47节:自动完成文本框AutoCompleteTextView 上一期学习的Spinner的使用,掌握的怎么样?本期一起来学习AutoCompleteTextView的 ...

  5. uwp汉堡菜单的实现

    ---恢复内容开始--- 现在uwp上面的汉堡菜单(就是那个三道杠,点击之后会出现菜单)使用的越来越普遍,比如微软自己家的Cortana.现在我使用的实现方法是使用SplitView实现.首先Spli ...

  6. 我的第一个Chrome插件:天气预报应用

    1.Chrome插件开发基础   开发Chrome插件很简单,只要会基本的前台技术HTML.CSS.JS就可以开发了. Chrome插件一般包括两个HTML页面background和popup.   ...

  7. iOS密码框的实现方式

    说一下密码加密的实现方式   效果图:           实现方式:   主要说一下密码框的实现,这个密码框中间的四个数字其实是4个 UITextField ,然后通过键盘删除键 和TextFile ...

  8. python机器学习系列之环境搭建

    Windows系统下python2.7,numpy,matplotlib安装 1.  python2.7从https://www.python.org/downloads/release/python ...

  9. Linux中同步互斥机制研究之原子操作

    操作系统中,对共享资源的访问需要有同步互斥机制来保证其逻辑的正确性,而这一切的基础便是原子操作. | 原子操作(Atomic Operations):    原子操作从定义上理解,应当是类似原子的,不 ...

  10. Spring Boot:使用Memcached缓存

    综合概述 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统.Memcached基于内存的key-value存储,用来存储小块的任意数据,这些数据可以是数据库调用.API调用或者是页面 ...