/annotated_nginx

Annotated Nginx Source(中文)

Primary LanguageCBSD 2-Clause "Simplified" LicenseBSD-2-Clause

annotated_nginx

Annotated Nginx Source(中文)

简介

Nginx源码分析,注解代码,帮助学习Nginx。

  • 1.10增加了动态模块、http2、reuseport。
  • 1.11.x里的stream模块的变动较大,完善了阶段处理。
  • 1.14增加了mirror模块,支持gRPC。
  • 1.15.10增加了range listen,指令“ssl_certificate”可从变量里加载证书。
  • 1.17.0不再支持OpenSSL 0.98,limit_rate/proxy_upload_rate支持变量。
  • 1.21.4支持内核TLS(kTLS),要求使用OpenSSL3.0,Linux内核高于4.17。
  • 1.21.5支持更新的PCRE2,但向上的封装接口不变。

请参考:

当前状态

Nginx 1.23.1

Git分支

分支 说明 注释
master Nginx开发版1.23.1
mainline Nginx开发版1.23.1
stable Nginx稳定版1.22.0

已注解

源码目录快捷入口

  • src - 70%,nginx源码目录
  • core - 90%,md5/sha1/crc等较简单的功能不关注
  • event - 90%,只注解核心模块和epoll,select/kqueue/ssl等不关注
  • http - 70%,少量modules目录里的具体功能模块有注释
  • os/unix - 80%,bsd/darwin/solaris等系统不关注
  • stream - 70%
  • misc - 100%

UML图解

UML图示

部分关键源码(目录分类)

core目录
event目录
http目录
http/modules目录
os/unix目录
stream目录
misc目录

部分关键源码(功能分类)

内存管理
数据结构
进程机制
事件机制
多线程机制
tcp(stream)处理
http处理

不注解

  • auto
  • mail