`
hillside
  • 浏览: 127486 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Keepalived+nginx实现负载均衡代理多个HTTPS

阅读更多
LVS
lvs 项目网站:http://www.linuxvirtualserver.org/

lvs是在linux操 作系统基础上建立虚拟服务器,实现服务节点之间的负载均衡。它是基于linux内 核实现的,2.6.X内核默认集成了lvs模块。lvs常用负载均衡的实现是基于ip协议的,所以一般称为ipvs。ipvs有三种实现方式,最常用、性能最好的是Direct routing(简称DR)。 Ubuntu8.10已经用了2.6的内核,所以不需要再编译内核了,为了检测一下,可以在命令行执行:modprobe -l | grep ipvs

使用keepalived+nginx实现负载均衡代理多个HTTPS

需求1:CDN小节点使用尽可能少的资源实现高可用和负载均衡
需求2:需要支持10多个HTTPS站点的反向代理
后端环境:nginx在前端做url_hash,后端缓存服务器使用squid和lighttpd分别处理动静态内容,服务器证书在nginx上

解决方案:
使用keepalived来实现前端3台nginx的高可用,DNS轮询来均摊负载。
每个https站点使用一个独立IP,非https站点分摊到这些IP上。
在每台机器的lo上绑定所有的IP来启动nginx服务。

架构图:


原理:
正常情况下负载均摊,每台机器只负担2-3个HTTPS站点,比如此时nginxA只负责192.168.0.101和192.168.0.102这2个 HTTPS站点。当nginxB挂掉时,nginxA和nginxC会根据策略去分担192.168.0.103和192.168.0.104这2个站点 的访问,这时nginxA上负担的站点就可能就是192.168.0.101、192.168.0.102和192.168.0.104了。

分配策略:


lo绑ip脚本:
#!/bin/sh
echo '2' > /proc/sys/net/ipv4/conf/lo/arp_announce
echo '1' > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo '2' > /proc/sys/net/ipv4/conf/all/arp_announce
echo '1' > /proc/sys/net/ipv4/conf/all/arp_ignore

ifconfig lo:1 198.188.225.101 netmask 255.255.255.255
ifconfig lo:2 198.188.225.102 netmask 255.255.255.255
ifconfig lo:3 198.188.225.103 netmask 255.255.255.255
ifconfig lo:4 198.188.225.104 netmask 255.255.255.255
ifconfig lo:5 198.188.225.105 netmask 255.255.255.255
ifconfig lo:6 198.188.225.106 netmask 255.255.255.255

Ngnix A配置文件范例:
! Configuration File for keepalived

global_defs {
notification_email {
[email]duanli0n@gmail.com[/email]
}
notification_email_from [email]nginx_ha1@snda.com[/email]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id nginx_ha1
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.101
192.168.0.102
}
}

vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.103
192.168.0.104
}
}

vrrp_instance VI_3 {
state BACKUP
interface eth0
virtual_router_id 53
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.105
192.168.0.106
}
}

暂时还未进行实验测试,先收藏之。
这个跟nginx一拖N个tomcat不一样,那个方案如果nginx所在机子挂了,整个服务入口就都挂了,还是会出现服务中断。
这个是多个nginx之间互为热备,自动切换宕机的IP到活着的机子上,从而实现从入口上的多机负载均衡,真正实现永不宕服务。
分享到:
评论

相关推荐

    keepalived+nginx高可用

    利用keepalived故障切换转移的功能,部署多个nginx服务,比如两个,一个master对外服务,另外一个处于backup热备服务,对外通过vip进行访问。当master服务出现问题的时候,backup热备服务的机器将会动态接管vip,...

    Nginx轻松实现开源负载均衡

    对于中、小型企业,如果没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过 Nginx + Keepalived 实现 Nginx 负载均衡器双机互备,任意一台机器发生故障,对方都能够将...

    使用Nginx轻松实现开源负载均衡.rar

    于中、小型企业,如果没有资金去购买昂贵的四/七层负载均衡交换机,那么Nginx是不错的七层负载均衡选择,并且可以通过 Nginx Keepalived 实现 Nginx 负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP...

    【架构搭建】nginx+keepalived高可用负载均衡

    keepalived是基于VRRP协议实现的保证集群高可用的一个服务软件,主要功能是实现真机的故障隔离和负载均衡器间的失败切换,防止单点故障。 VRRP协议:Virtual Route Redundancy Protocol虚拟路由冗余协议。是一种容错...

    Nginx负载均衡高可用

    本文来自于cnblogs,介绍了什么是负载均衡高可用,什么是keepalived,keepalived+nginx实现主备等。首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,Keepalived主要来防止服务器单点故障的...

    nginx 代理问题,负载均衡问题

    Nginx负载均衡【`重点`】Nginx为我们默认提供了三种负载均衡的策略: ​ 轮询:将客户端发起的请求,平均的分配给每一台服务器。 ​ 权重:会将客户端的请求,根据服务器的权重值不同,分配不同的数量。 ​ ip_...

    入门级linux,nginx,tomcat,keepalived详细安装教程.zip

    入门级linux,nginx,tomcat,keepalived详细安装教程.zip linux各目录的含义 安装nginx,反向代理负载均衡 linux下运行多个tomcat linux安装keepalived实现HA高可用

    Nginx+Keepalived实现双机主备的方法

    首先介绍一下Keepalived,它是一个高性能的服务器高可用或热备解决方案,起初是专为LVS负载均衡软件设计的,Keepalived主要来防止服务器单点故障的发生问题,可以通过其与Nginx的配合实现web服务端的高可用。...

    kubeadm+vip 高可用部署.docx

    为 apiserver 提供负载均衡器有很多方法,比如传统的 haproxy+keepalived,或者使用 nginx 代理也可以,这里我们使用一个比较新颖的工具 kube-vip。 kube-vip(https://kube-vip.io/) 可以在你的控制平面节点上提供...

    haproxy+keepalived实现高可用负载均衡(理论篇)

    HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当 前,HAProxy支持两种主要的代理模式:”tcp”也即4层(大多用于邮件服务器、内部协议通信服务器等),和7层(HTTP)。在4层模式 下,HAProxy仅在客户端和...

    高并发web集群框架搭建

    keepalived做高可用nginx负载均衡,两台nginx负载均衡可以处理静态页面,同时通过VIP进行热备。后端服务器采用apache(当然你可用其他的,这个看你的代码了)。数据库采用mysql进行集群搭建,将读写操作分离,数据库...

    Java思维导图xmind文件+导出图片

    Nginx反向代理服务器及负载均衡服务器配置实战 利用keepalived+Nginx实战Nginx高可用方案 基于Nginx实现访问控制、连接限制 Nginx动静分离实战 Nginx Location ReWrite 等语法配置及原理分析 Nginx提供https...

    kube-keepalived-vip:使用keepalived的Kubernetes虚拟IP地址

    创建一个云负载均衡器。 在群集中的每个节点上分配一个端口(相同的端口),并将通过该端口的流量代理到端点。 这样就行了。 那是什么问题呢? 问题是它不能提供高可用性,因为需要事先知道正在运行的节点的IP...

    基于SpringBoot+Vue的外卖网上点餐系统源码+项目说明.zip

    项目部署上采用Doker虚拟化技术部署在自己的阿里云上,整合合Nginx、Haproxy和keepalived,从数据库到后端、前端均采用多节点负载均衡策略部署。 整个项目用的都是目前主流的技术,覆盖前后端各个技术的基础,从...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》,即将上架发行,此书从Web应用、数据备份与恢复、网络存储应用、运维监控与性能优化、集群高级应用等多个方面深入讲解了如何构建高性能的Linux服务器。...

    高性能Linux服务器构建实战:运维监控、性能调优与集群应用

    主要讲述了如何通过LVS+heartbeat、piranha、LVS+Keepalived来构建高可用的负载均衡集群,其次讲解了红帽集群套件RHCS的配置、管理、维护和监控,然后讲解了Oracle集群解决方案,即OracleRAC数据库的构建、使用和...

    xbin-store商城系统-其他

    Beetl11、网页采用freemarker生成静态化页面12、存储采用FastDFS存储图片等文件13、采用Solr实现搜索服务14、Swagger2 生成 RESTful Apis文档15、负载均衡使用Nginx、keepalived实现高可用16、采用Spring Scheduled...

    kubernetes二进制集群部署——–多master集群(步骤非常详细,适合初学者)

    master2 的三个组件3.5、验证master2是否加入K8s集群四、搭建nginx负载均衡五、搭建 keepalived 高可用服务5.1、搭建 nginx 的高可用5.2、验证高可用功能六、node节点指向 LB 高可用群集七、k8s多节点集群测试 ...

    跟老男孩学Linux运维:集群实战

    着重讲解了Web集群后端的MySQL数据库、Web集群共享存储NFS、Nginx反向代理负载均衡、Keepalived高可用、Memcached缓存及session共享、Nagios企业级监控等技术实战,最后为读者规划了一个中等规模的网站集群架构解决...

Global site tag (gtag.js) - Google Analytics