陶辉Nginx核心知识100讲,这门课从使用层面来讲Nginx,会讲到Nginx架构、模块实战、性能优化(包括Linux系统)、Openresty等
一、初识Nginx
课程综述
Nginx 适用于哪些场景?
Nginx出现的历史背景
为什么用Nginx:它的5个主要优点
Nginx的四个主要组成部分
Nginx的版本发布历史
选择哪一个Nginx发行版本?
编译出适合自己的Nginx
Nginx配置文件的通用语法介绍
Nginx命令行及演示:重载、热部署、日志切割
用Nginx 搭建一个可用的静态资源Web 服务器
用Nginx搭建一个具备缓存功能的反向代理服务
用GoAccess 实现可视化并实时监控access 日志
从网络原理来看SSL安全协议
对称加密与非对称加密各自的应用场景
SSL证书的公信力是如何保证的?
SSL协议握手时Nginx的性能瓶颈在哪里?
用免费SSL证书实现一个HTTPS站点
基于OpenResty用Lua 语言实现简单服务
二、Nginx架构基础
Nginx的请求处理流程
Nginx的进程结构
Nginx的进程结构实例演示
使用信号管理Nginx的父子进程
reload 重载配置文件的真相
热升级的完整流程
优雅地关闭 worker 进程
网络收发与Nginx事件间的对应关系
Nginx网络事件实例演示
Nginx的事件驱动模型
epoll的优劣及原理
Nginx的请求切换
同步&异步、阻塞&非阻塞之间的区别
Nginx的模块究竟是什么?
Nginx模块的分类
Nginx如何通过连接池处理网络请求
内存池对性能的影响
所有worker进程协同工作的关键:共享内存
用好共享内存的工具:Slab 管理器
哈希表的max_size与bucket_size如何配置
Nginx中最常用的容器:红黑树
使用动态模块来提升运维效率
三、详解HTTP模块
第三章内容介绍
冲突的配置指令以谁为准?
Listen 指令的用法
处理HTTP请求头部的流程
Nginx中的正则表达式
如何找到处理语求的server 指令块
详解HTTP请求的11个阶段
11个阶段的顺序处理
postread阶段:获取真实客户端地址的realip模块
rewrite 阶段的rewrite模块:returm指令
rewrite 阶段的rewrite模块:重写URL
rewrite阶段的 rewrite模块:条件判断
find_conhg阶段:找到处理请求的location指令块
preaccess 阶段:对连接做限制的limit.conn模块
preaccess 阶段:对请求做限制的limit_req模块
access阶段:对ip做限制的access模块
access 阶段:对用户名密码做限制的anth_basic 模块
access 阶段;使用第三方做权限控制的auth_request模块
access 阶段的 satisfy 指令
precontent 阶段:按序访问资源的try_fles模块
实时拷贝流量:precontent 阶段的mirror 模块
content阶段:详解root 和alias指令
static 模块提供的3个变量
static 模块对url不以斜杠结尾却访问目录的做法
index和antoindex模块的用法
提升多个小文件性能的concat模块
access日志的详细用法
HTTP过滤模块的调用流程
用过滤模块更改响应中的字符串:sub模块用过滤模块
在http响应的前后添加内容:addition模块
Nginx变量的运行原理
HTTP框架提供的请求相关的变量
HTTP框架提供的其它变量
使用变量防盗链的referer 模块
使用变量实现防盗链功能实践:secure_link模块
为复杂的业务生成新的变量:map模块
通过变量指定少量用户实现A/B经过亲自测试:split_client模块
根据IP地址范围的匹配生成新变量:geo模块
使用变量获得用户的地理位置;geoip模块
对客户端使用keepalive提升连接效率
四、反向代理与负载均衡
反向代理与负载均衡原理
负载均衡策略:round-robin
负载均衡哈希算法:ip_hash与hash模块
一致性哈希算法:hash模块
最少连接算法以及如何跨 worker 进程生效
http upstream横块提供的变量
http反向代理proxy处理请求的流程
proxy模块中的proxy_pass指令
根据指令修改发往上游的请求
接受用户请求包体的方式
与上游服务建立连接
接受上游的响应
处理上游的响应头部
上游出现失败时的容错方案
对上游使用SSL连接
用好浏览器的缓存
Nginx决策浏览器过期缓存是否有效
缓存的基本用法
对客户端请求的缓存处理流程
接收上游响应的缓存处理流程
如何减轻缓存失败时上游服务的压力
及时清理缓存
uwsgi、fastcgi、scgi指令的对照表
memcached 反向代理的用法
搭建 websocket反向代理
用分片提升缓存效率
open fle cache 提升系统性能
http2协议介绍
指建http2服务并推送资源
9RPC反向代理
stream四层反向代理的7个阶段及常用变量
proxy protocol 协议与relip模块
限并发连接、限IP、记日志
stream 四层反向代理SSL下游流量
stream preread 模块取出SSL关键信息
stream proxy 四层反向代理的用法
UDP反向代理
透传IP地址的3个方案
五、Nginx的系统层性能优化
性能优化方法论
如何高效使用CPU
多核间的负载均衡
控制TCP三次握手参数
建立TCP连接的优化
滑动窗口与缓冲区
优化缓存区与传输效率
慢启动与拥塞窗口
TCP协议的keepalive 功能
减少关闭连接时的time_wait 数量
lingering.close 延迟关闭TCP连接
应用层协议的优化
磁盘I0的优化
减少磁盘读写次数
零拷贝与gzip_static模块
用tomalloc优化内存分配
使用Google PerfTools分析Nginx
使用sub_status 模块监控Nginx的状态
六、从源码视角深入使用Nginx与OpenResty
第三方模块源码的阅读
Nginx的启动流程
HTTP第三方横块的初始化
计指令是邪悉的吗?
解读Nginx的核心转储文件
通过debug日态定位问题
OpenResty截述
OpenResty中的Nginx模块与Lua模块
如何在Nginx中嵌入Lua代码
OpenResty中Lua与C代码交互的原理
获取、修改请求与响应的SDK
工具类型的SDK
同步且非阻塞的底层SDK:cosocket
基于协程的并发编程SDK
定时器及时间相关的SDK
share.DICT基于共享内存的字典
子请求的使用方法
基于OpenResty的WAF 防火墙
[我要扒资料]
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。