🐧
运维笔记
首页
文章
笔记导航
笔记系列
▾
🐧
Linux 运维基础笔记
7 页
🔧
运维进阶 · 常用服务搭建
8 页
🌐
Web 应用服务 · Nginx
8 页
🚀
Nginx 水平扩展与优化
8 页
🛡️
Linux 进阶 · iptables 防火墙
4 页
🐚
Linux 进阶 · Shell 编程
10 页
🐬
数据库 · MySQL
12 页
📊
监控 · Zabbix + Grafana
3 页
🐳
云原生 · Docker
9 页
🌿
云原生 · Git
5 页
归档
标签
搜索
关于
首页
/
全部文章
/ 笔记导航
Nginx 水平扩展与优化
Nginx 进阶:反向代理的报文与 IP 传递、Gzip/Brotli 压缩、浏览器缓存、限流与健康检查,以及水平扩容的完整思路和排障记录。
8 个分页
53 个小节
📖 按学习顺序排列
1
水平扩展与集群化入门
扩容的几种方式、集群化里上游下游怎么分,以及 ip_hash、url_hash、cookie 和 sticky 做会话保持的配置。
一、水平扩展简单介绍
二、单机垂直扩容
三、水平扩展:集群化
ip_hash 保持会话
URI 保持会话
利用 java 的 cookie 保持
第三方模块 sticky
2
水平扩展的性能优化
keepalive 在浏览器侧和上游侧的各个参数怎么配、怎么抓包看,以及用 ab 压后端和压网关的几组数据对比。
一、水平扩展:性能优化
浏览器的 keepalive(简单了解)
keepalive 在 nginx 的详细配置
nginx 和上游服务器之间的配置
压力测试和调优方式
Tomcat 直连和走 nginx 的压测对比
3
水平扩展排障记录
实验环境从 502 到公网可用的完整排查流程,最后定位到三个 Nginx 实例抢端口和 iptables 只放行内网这两件事上。
一、公网访问不通,一步步排查
第一步:确认服务本身活着
第二步:确认后端可达(如果有反向代理)
第三步:确认监听范围
第四步:确认端口是否被多实例抢占
第五步:检查系统防火墙
第六步:检查云安全组
第七步:检查 DNS 解析
第八步:检查内网互通(多台机器之间)
故障问题
4
Nginx 限流日志与健康检查
漏桶和令牌桶两种限流怎么配、access.log 的缓冲压缩和 JSON 输出怎么弄,以及 upstream 的被动重试和主动健康检查。
一、限流
漏桶算法和 JMeter 压测
令牌桶算法
二、日志
Nginx 日志基本配置
日志压缩和解压 & JSON 格式输出
error 日志与日志分割
三、健康检查
upstream 重试机制(被动)
健康检查使用 tengine 模块(主动)
5
Nginx 反向代理的报文处理与真实 IP
请求从浏览器到上游服务器这一路都经历了什么,缓冲区参数都管哪一段,以及反代之后怎么才能拿到客户端的真 IP。
HTTP 报文结构
反向代理的内存与文件缓冲区流程
Nginx 对客户端的缓冲和限制
反向代理无法获取客户端 IP 地址
获取真 IP
一些有用的 header 介绍
6
Nginx 的 Gzip 动态与静态压缩
gzip 动态压缩为什么和 sendfile 冲突、静态压缩怎么预先打包,以及 brotli 模块的编译和配置参数。
Gzip
Gzip 动态压缩及缺点
Gzip 静态压缩及扩展配置
Brotli
7
浏览器缓存与 Nginx 缓存头配置
从多级缓存到浏览器自己的两级缓存,以及 etag、Last-Modified、expires、Cache-Control 这几个头在 Nginx 里怎么配。
浏览器缓存
京东 Web 端浏览器缓存的使用情况
浏览器的强制缓存和协商缓存
Nginx Etag、Last-Modified 具体配置(协商缓存配置)
etag、lastmodify、cache-control、expires 具体配置(强制缓存配置)
浏览器缓存额外需要注意的事项和应用场景
8
CDN 与 Nginx 代理缓存深入
CDN 是怎么就近取数据的、proxy_cache 那套参数各自管什么,以及断点续传和多级缓存的整体链条。
CDN
反向代理缓存 proxy_cache 配置
Nginx 断点续传
Nginx 内外缓存和扩展内容介绍