my_study_nginx’s 学习笔记
我自己对nginx学习视频的学习笔记
- 1. 初识nginx
- 2. nginx架构基础
- 3. nginx的http模块
- 3.1. 配置块的嵌套情况
- 3.2. 指令的上下文
- 3.3. 指令的合并
- 3.4. listen 指令
- 3.5. 接收请求事件模块
- 3.6. 接收请求事件模块详细
- 3.7. 正则表达式
- 3.8. server_name 指令
- 3.9. 使用正则创建变量
- 3.10. server匹配顺序
- 3.11. nginx处理的11个阶段
- 3.12. 如何获取真实的用户ip地址。
- 3.13. 如果拿到用户的ip如何使用
- 3.14. return 指令
- 3.15. 验证return errorpage优先级
- 3.16. error_page
- 3.17. rewrite指令
- 3.18. rewrite 行为记录error日志
- 3.19. if指令
- 3.20. location指令
- 3.21. 如何限制每个客户端的并发连接数量
- 3.22. 如何限制每个客户端的每秒处理请求数量
- 3.23. limit_req 和limit_conn 区别
- 3.24. 如何限制哪些ip地址的访问权限
- 3.25. http base authentication
- 3.26. 统一的用户权限验证系统auth_request
- 3.27. 限制所有access阶段的satisfy指令
- 3.28. precontent 阶段的try_files
- 3.29. 实时流量mirror 模块
- 3.30. root和alias指令差异
- 3.31. 静态文件返回的content-type
- 3.32. index模块
- 3.33. auto index 模块
- 3.34. log阶段
- 3.35. 替换响应中的字符串
- 3.36. 在相应的前后添加内容
- 3.37. 变量的惰性求值
- 3.38. http框架使用的常用变量
- 3.39. secure_link模块
- 3.40. map指令
- 3.41. split_clients模块
- 3.42. geo模块
- 3.43. geoip模块基于maxmind数据库获取
- 3.44. 对客户端keepalive行为控制的指令
- 4. 负载均衡
- 4.1. nginx扩展方式
- 4.2. 支持的反向代理协议
- 4.3. 负载均衡基础指令
- 4.4. 对上游服务使用长连接
- 4.5. 轮训配置样例
- 4.6. 反向代理的hash算法
- 4.7. 一致性hash算法
- 4.8. 连接做少的上游服务器
- 4.9. upsteam共享内存
- 4.10. upsteam模块提供的变量
- 4.11. http反向代理的处理流程
- 4.12. proxy模块的基本使用
- 4.13. 修改向后端的请求行
- 4.14. 接收客户端请求的包体
- 4.15. 向上游建立连接
- 4.16. 接收上游的响应头部
- 4.17. 接收上游的包体
- 4.18. 接受上游网络速度相关指令
- 4.19. 包体持久化
- 4.20. 加工响应头部
- 4.21. 上游返回错误的处理办法
- 4.22. ssl使用场景和双向认证
- 4.23. 浏览器缓存与nginx缓存
- 4.24. etag
- 4.25. if-none-match
- 4.26. if-modified-since头部
- 4.27. nginx判定缓存是否过期
- 4.28. not_modified
- 4.29. nginx缓存:定义存放的载体
- 4.30. 定义缓存的key
- 4.31. 缓存什么请求
- 4.32. 不缓存什么内存
- 4.33. upstrream_cache_status变量
- 4.34. 缓存流程 发起请求部分
- 4.35. 缓存流程 接手上游响应
- 4.36. 如何减轻上游压力
- 4.37. 及时清理缓存
- 4.38. 七层反向代理对照表
- 4.39. redis反向代理
- 4.40. nginx实现websocket代理
- 4.41. 使用分片提升效率
- 4.42. 缓存优化-文件打开
- 4.43. http2主要特性
- 4.44. http2核心概念
- 4.45. 协议分层和多路复用
- 4.46. http2推送文件
- 4.47. nginx反向代理grpc
- 4.48. nginx代理4层样例
- 4.49. proxy_protocol 协议
- 4.50. udp反向代理
- 5. nginx优化
- 5.1. 优化方法论
- 5.2. 如何有效使用CPU
- 5.3. 多核间如何负载均衡
- 5.4. 控制tcp握手参数
- 5.5. 建立tcp连接的优化
- 5.6. 滑动窗口和缓冲区
- 5.7. 优化滑动窗口和传输效率
- 5.8. 慢启动和拥塞窗口
- 5.9. tcp keepalive
- 5.10. 减少连接的timewait的状态数量
- 5.11. lingering_close 延迟关闭连接
- 5.12. 应用层协议优化
- 5.13. tls/ssl中的会话票证
- 5.14. http长连接
- 5.15. gzip压缩
- 5.16. 升级更高效的http2.0协议
- 5.17. 磁盘io的优化
- 5.18. 减少磁盘读写次数
- 5.19. 零copy和gzip_static
- 5.20. tcmalloc
- 5.21. 使用google perf 分析
- 5.22. statu模块监控nginx数据
- 6. openresty及nginx源码
- 6.1. 第三方模块源码的快速阅读方法
- 6.2. config结构
- 6.3. nginx启动和退户回调方法
- 6.4. nginx启动过程
- 6.5. master进程循环
- 6.6. work进程循环
- 6.7. http模块初始化
- 6.8. http模块的11个阶段
- 6.9. 添加模块到11个阶段的常用方法
- 6.10. if指令连续出现
- 6.11. coredump 核心转储文件
- 6.12. gdb的基本使用
- 6.13. debug定位问题
- 6.14. 控制debug级别的error.log日志输出
- 6.15. debug日志分析
- 6.16. openresty简介
- 6.17. openrestysdk分类
- 6.18. openresty的使用要点
- 6.19. openrestry的nginx核心模块
- 6.20. openrestry的nginx工具模块
- 6.21. openrestry的官方lua模块
- 6.22. 如何在nginx中嵌入lua
- 6.23. 在nginx过程嵌入lua代码
- 6.24. lua ffi
- 6.25. 系统级配置指令
- 6.26. nginx的变量
- 6.27. ngx.req
- 6.28. 发送响应sdk
- 6.29. 日志
- 6.30. cosocket
- 6.31. 多协程方法
- 6.32. la_resty_lock锁
- 6.33. 定时器
- 6.34. 共享内存
- 6.35. nginx主请求和子请求
- 6.36. 基于openrestry的waf防火墙