博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
告别LVS:使用keepalived+nginx实现负载均衡代理多个https
阅读量:6579 次
发布时间:2019-06-24

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

需求1:CDN小节点使用尽可能少的资源实现高可用和负载均衡

需求2:需要支持10多个站点的反向代理
后端环境:在前端做url_hash,后端缓存服务器使用和分别处理动静态内容,服务器证书在上

解决方案:

使用来实现前端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/ /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_ignoreifconfig lo:1 198.188.0.101 netmask 255.255.255.255
ifconfig lo:2 198.188.0.102 netmask 255.255.255.255
ifconfig lo:3 198.188.0.103 netmask 255.255.255.255
ifconfig lo:4 198.188.0.104 netmask 255.255.255.255
ifconfig lo:5 198.188.0.105 netmask 255.255.255.255
ifconfig lo:6 198.188.0.106 netmask 255.255.255.255

 

Ngnix A配置文件范例:

! Configuration File for keepalived

global_defs {

notification_email {
duanli0n@gmail
}
notification_email_from nginx_ha1@snda.com
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
}
}

作者:du@nli0n

转载于:https://www.cnblogs.com/fx2008/p/4010572.html

你可能感兴趣的文章
Linux 系统 审计
查看>>
uPortal 5.2.1特性及定制清单
查看>>
基于TP5的微信的公众号获取登录用户信息
查看>>
大数据系列8:Sqoop – HADOOP和RDBMS数据交换
查看>>
2011年国外最受欢迎的15个科学网站
查看>>
如何做一名优秀的程序员?——职业生涯规划
查看>>
Java NIO系列教程(一) Java NIO 概述
查看>>
uliweb中ORM关系属性初始化延迟处理调整
查看>>
win下执行exec()权限问题
查看>>
Arduino下实现LED Martix级联
查看>>
Jenkins 安装笔记
查看>>
SonarQube + Scanner的安装配置及使用
查看>>
百度地图
查看>>
PHP 变色验证码实例
查看>>
XPC
查看>>
《Concise课程表》开发过程总结
查看>>
Mysql Explain 详解
查看>>
[java基础]一文理解java多线程必备的sychronized关键字,从此不再混淆!
查看>>
mongodb副本集部署
查看>>
zookeeper的额外端口
查看>>