Skip to content

SmartKeyerror/reading-source-code-of-nginx-1.19.10

Repository files navigation

1. nginx 源码目录结构

.
├── auto          # 与编译相关的一些脚本文件,可执行文件 configure 将会使用到该目录下的文件
├── conf          # 默认的配置文件,比如 nginx.conf、uwsgi_params
├── contrib       # 脚本和工具,比较典型的就是 vim 高亮工具
├── html          # 就两个文件, 50x.html 和 index.html,index.html 就是 Welcome to nginx! 页面
├── man           # 帮助文件目录
├── objs          # 编译产生的临时文件
└── src           # 核心源码目录文件,包含了 nginx 运行的核心源码文件
    ├── core      # nginx 核心源码文件,包含了程序入口函数、数据结构的定义,以及 nginx 运行时的核心代码
    ├── event     # epoll 事件模型相关代码
    ├── http      # http 模块相关源码
    ├── mail      # mail 模块相关源码
    ├── misc      # 杂项,一些辅助代码
    ├── os        # 于 unix 操作系统相关的内容,可以认为是对 POSIX API 的一个封装
    └── stream    # stream 模块相关代码

如果以理解 nginx 的运行机理为目标的话,那么只需要阅读几个核心目录下的源码文件即可,包括 src/core, src/event, src/http 以及 src/stream

其中 src/http 以及 src/stream 主要包含的是 HTTP 框架和 stream 机制的相关内容。而src/coresrc/event 则是 nginx 运行时的核心代码文件,其中也隐藏着为什么 nginx 支持单机数十万的并发,以及 nginx 为什么运行如此之稳定的奥秘。

2. 前置知识点

3. nginx 核心数据结构与关键流程

3.1 核心结构概览

img_1.png

3.2 Nginx 相关内容解析

  1. Nginx 数据结构

About

nginx-1.19.10 源码阅读,分析关键组件与核心运转流程, 并使用图例进行描述

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy