- 陶辉:巧用 Nginx 实现大规模分布式集群的高可用性
- 来源:高效运维
杭州智链达数据有限公司CTO
《深入理解 Nginx:模块开发与架构解析》作者本文是我对2019年GOPS深圳站演讲的文字整理。这里我希望带给各位读者的是,如何站在整个互联网背景下系统化地理解Nginx,因为这样才能解决好大流量分布式网络所面临的高可用问题。
可伸缩性。核心点在于如何有效的、动态的、灰度的均衡负载。可扩展性指功能组件的独立进化。可以理解为某个 Nginx 模块独立升级后,并不影响Nginx整体服务的属性。网络效率,也就是如何提升信息传输的效率。HTTP协议功能的全面支持。HTTP1的RFC规范非常多,毕竟它经历了20多年的变迁,而这20多年里互联网的巨大变化是HTTP1的设计者无法预料到的,这些规范也并不被所有Server、Client支持。 当然HTTP2和HTTP3相对情况会好很多。
在讨论 Nginx 的负载均衡策略前,我们先来了解AKF扩展立方体,它能使我们对此建立整体思维。AKF扩展立方体有X、Y、Z轴,这三个轴意味着可以从3个角度实现可伸缩性:X轴指只需要增加应用进程,不用改代码就能水平的扩展。虽然最方便 ,但它解决不了数据不断增长的问题。Y轴按功能切分应用,它能解决数据增长的问题,但是,切分功能意味着重构代码,它引入了复杂性,成本很高。Z轴基于用户的属性扩展服务,运维Nginx时这招我们最常用,通常我们基于变量取到用户的IP地址、URL或者其他参数来执行负载均衡。当然,这三个轴可以任意组合以应对现实中的复杂问题。
多级指令配置。通过大括号{},我们可以层层嵌套指令,借用父子关系来模块化的配置代码。变量,这是我们实现复杂功能,且不影响Nginx模块化设计的关键。变量是不同模块间低耦合交互的最有效方式!脚本引擎。脚本指令可以提供应用编程功能。很多人说Nginx的if指令是邪恶的,比如上图中的代码,其实我们只有理解if指令是如何影响父子嵌套关系后,才能正确的使用if。在《Nginx核心知识150讲》第141课我有详细介绍。
我们在网页上会使用播放条拖动着看视频,这可以基于Http Range协议实现。但是,如果不启用Slice模块Nginx就会出现性能问题,比如现在浏览器要访问一个视频文件的第150-249字节,由于满足了缓存条件,Nginx试图先把文件拉取过来缓存,再返回响应。然而,Nginx会拉取完整的文件缓存!这是很慢的。怎么解决这个问题呢?使用Nginx的slice模块即可,如果配置100字节作为基础块大小,Nginx会基于100-199、200-299产生2个请求,这2个请求的应用返回并存入缓存后再构造出150-249字节的响应返回给用户。这样效率就高很多!通常,Nginx作为CDN使用时都会打开这一功能。
Nginx处理TLS层性能非常好,这得益于2点:Nginx本身的代码很高效,这既因为它基于C语言,也由于它具备优秀的设计。减少TLS握手次数,包括:session缓存。减少TLS1.2握手中1次RTT的时间,当然它对集群的支持并不好,而且比较消耗内存。Ticket票据。Ticket票据可应用于集群,且并不占用内存。当然,减少TLS握手的这2个策略都面临着重放攻击的危险,更好的方式是升级到TLS1.3。我在《Web协议详解与抓包实战》第80课有详细介绍。4. 巧用Nginx
陶辉
扫一扫下载订阅号助手,用手机发文章
赞赏
长按二维码向我转账
受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。
已同步到看一看
取消
发送
我知道了
朋友会在“发现-看一看”看到你“在看”的内容
确定
已同步到看一看写下你的想法
最多200字,当前共字
发送
已发送
朋友将在看一看看到
确定
写下你的想法...
取消
发布到看一看
确定
最多200字,当前共字
发送中
微信扫一扫
使用小程序
取消
允许
即将打开一个新页面
取消
允许
社会
-
-
- 谈谈移民,我与我的皮肤
- Constantin Brancusi,The Kiss 不停有人问有关移民的问题,我活了半辈子,这个问题前几年想清楚了,我自己,肯定不会移民离开中国的。 两个理由。 一、赚钱的机会将来更多在
- 连岳
-
-
-
- 京东Q2财报:高速增长背后的长远逻辑
- 8月13日晚间,京东集团发布了2019年第二季度财报,收入、利润、现金流以及活跃用户数四大核心业绩指标全部实现了强劲增长,进一步夯实了一季度开始的向好形势。 财报显示,京东第二季度净收入达到了1503
- 科技观察
-
-
-
- 银幕魅影——从卡里加利到希特勒
- 施京吾 《东方历史评论》微信公号:ohistory 但凡思想、文化、艺术,总能反映一定的意识形态和价值观。即便清代实学思潮,也被认为是学术家们避世之结果。古史辨派首领顾颉刚先生考据出“大禹是条虫”,
- 东方历史评论
-
-
-
- 真正厉害的人,凡事都不走捷径
- 彭萦 改变自己主创 创业者 | 品牌人 | 性格分析师 曾经有人问我,你为什么创业? 我的回答是:吃喝玩乐终究是低级刺激。去创造、去厮杀,这才是高级刺激,这样的刺激只要你做过一
- 改变自己
-
-
-
- 判断一个男生,一定要从他的房间入手。
- 不久前,一位男性朋友跟我吹嘘了自己房间里的柜子。 柜子里专门存放着一些特殊的纪念品: 两罐曾经的女友叠的纸星星,几本手工制作的相册,还有代表着情侣关系的 T 恤。 提到纸星星里写的字条他从未拆开看过的
- 我要WhatYouNeed
-
-
-
- 陶辉:巧用 Nginx 实现大规模分布式集群的高可用性
- 讲师简介 杭州智链达数据有限公司CTO 《深入理解 Nginx:模块开发与架构解析》作者 本文是我对2019年GOPS深圳站演讲的文字整理。这里我希望带给各位读者的是,如何站在整个互联网背景下系统化
- 高效运维
-
-
-
- 【量化历史研究】谁是百年投资最佳资产?来自全球16个富国150年资产回报率的证据
- 本文为“量化历史研究”第 347篇推送 (图片来源网络) 不论是研究收入不平等的经济学家,还是关注投资收益的金融从业者,再或是制定经济政策的政府官员,资本回报率始终是他们眼中最重要的经济指标之一。特
- 量化历史研究
-
-
-
- 当女明星嫁给了自己的经纪人
- 李艾以前没想过结婚,也做好了不要孩子的准备,甚至给自己存了一笔冻卵的钱。她一直觉得婚姻和孩子,都不是人生的必选项,直到遇到了张徐宁。 文|赖祐萱 编辑|金焰 图片由受访者提供 张徐宁有点紧
- 人物
-
-
-
- “实用为王”环境下的 CV 技术,AI 企业如何在落地快车道上提档加速?
- 作为一门教计算机如何“看”的科学,计算机视觉技术发展迅猛,近年来更是因张学友演唱会通过人脸识别技术抓捕逃犯,走进大众视野。 但它的价值远不止于此。 从移动支付的自动贩卖机到刷脸支付的智能货柜; 从基于
- Tiny4Voice
-
-
-
- 扯白||《芳华》三美现在拉开差距了吗?
- 前两天,钟楚曦发了一条微博,是电影《芳华》里的演员再聚首的照片,苗苗转发,而杨采钰则只是赞了一下: 真是恍如隔世啊,不知不觉,电影《芳华》也已经上映两年了,这两年间发生了多少事情也不用再提了,重点
- 蓝小姐和黄小姐
-
-
-
- “黄晓明,你别装了”
- 你做我的朗读者 我做你的摆渡人 戳蓝字一键关注 摆渡人 ☾ 每晚21:39 无论你在哪里,请记得打开手机。 黄晓明,你别装了”_朴树 平凡 - 来自摆渡人 - / 14:54 ♪ 点上方绿标即可收
- 摆渡人
-
-
-
- 独处是一种竞争优势吗?
- “永远记住: 你的专注决定了你的现实。” 绝地大师奎-冈 · 金在《星球大战》中与达斯·维达分享了这个建议,但在我们这个高度分散注意力的工作世界里,这个建议是我们也都需要听取的。 科技无疑在无数方面
- 译言
-
-
-
- 白鸦内部培训:企业服务类产品的底层逻辑,和“有赞产品设计原则”
- * 全文 16517 字,阅读需 30 分钟以上。 有赞产品设计原则 写在前面 作为一个产品团队,我们最需要的永远都是懂用户懂需求,并保持不断的创新力。有赞希望每个产品人在这里都能足够发挥自己的能量,
- keso怎么看
-
-
-
- 女生穿衣自由与言论自由
- 公共话题的低质量是近年来的趋势。 就说「穿衣」这事,如果不拔高到「言论自由」的层面,几乎没有讨论的价值。 而很多事,兜兜转转,最终的症结也是「言论自由」。 本文讨论的当然是受我国宪法保护的「言论自由」
- 三表龙门阵
-