博客专栏  >  架构   >  nginx源码分析

nginx源码分析

撰写专栏主要目的是试图通过对于nginx源码的分析,从使用,模块开发,架构分析等多个维度促进自身对于nginx的理解,并将所得总结出来与大家分享交流,同时也期望能获得宝贵的意见和建议

关注
4 已关注
20篇博文
  • nginx事件模块之ngx_epoll_module源码分析

    ngx_epoll_module是nginx众多事件模块的其中一个,它利用linux的epoll模型实现nginx事件框架所定义的事件模块接口。运行在linux系统上的nginx默认使用该模块作为事件...

    2018-02-09 15:10
    85
  • nginx事件处理框架及源码解析

    nginx的中的事件可以分为两类:系统事件和定时器事件。系统事件指的是由操作系统通知给nginx的事件,例如各种IO多路复用api(select,epoll_wait等)返回的事件,定时器事件是指由n...

    2018-02-09 14:48
    103
  • nginx的内存池设计

    为了方便管理内存和文件等计算机资源,提高运行效率,nginx实现了自己的内存池。除了启动过程中在尚未创建内存池之前的阶段是直接使用系统的内存管理接口之外,nginx的内存管理都是通过内存池进行的。 ...

    2018-02-07 11:10
    112
  • http框架核心之ngx_http_core_module.c

    ngx_http_core_module.c是http框架代码中最重要的一部分。nginx中http协议的实现,http框架的大部分核心指令,http请求整个生命周期的处理流程(也可以说是http请求...

    2018-02-05 15:59
    47
  • nginx启动流程分析

    /* 以下只分析linux环境下的启动流程,非linux环境略过 */ int ngx_cdecl main(int argc, char *const *argv) {     ngx_bu...

    2018-02-01 17:08
    99
  • nginx的http模块配置接口以及http框架配置内存布局

    http模块是nginx中数量最多,也是配置最复杂的模块。http模块的配置最多可以分为三级,分别是http级别,server级别和location级别。nginx为http模块定义了一组接口,用于模...

    2018-02-05 10:01
    65
  • nginx错误日志模块ngx_errlog_module

    ngx_errlog_module模块是nginx中第二个被执行的模块,它是nginx用来为其它模块提供日志记录功能的基础模块,http,mail,stream等模块都会调用该模块的接口实现日志记录功...

    2018-02-02 18:09
    123
  • nginx核心模块ngx_core_module分析

    ngx_core_module是nginx中最为核心的一个模块,也是第一个被加载的模块。为什么它是第一个被加载的呢?我们先看它的配置结构体定义: typedef struct { ngx_f...

    2018-02-02 17:47
    103
  • nginx定时器分析

    nginx的定时器用于向其它模块提供非操作系统事件的管理接口,源码位于ngx_event_timer.h和ngx_event_timer.c中。 nginx的定时器管理是通过红黑树实现的。红黑树的每...

    2018-02-02 17:18
    69
  • nginx字符串格式化函数

    nginx自定义/重命名了很多数据类型,为了在打印日志时能够方便的打印这些数据类型,nginx实现了自己的字符串格式化函数,其中核心是ngx_vlsprintf,它支持多种自定义数据类型的格式化,如下...

    2018-02-02 17:13
    262
  • nginx配置的内存布局

    nginx的配置系统很灵活,不但支持模块自定义配置项,而且支持多级配置以及合并多级配置项。这样的设计使得nginx的配置在内存中的布局也是分成多级的,比较复杂。因此,这里采用一种自顶向下的方式进行逐级...

    2018-02-02 16:49
    257
  • nginx的模块加载顺序

    nginx是按照模块类型的先后顺序来加载模块的,如下所示 核心模块 > 事件模块 > 线程池模块 > http模块 > 邮件模块 > stream模块 > 其它模块 核心模块加载顺序 ...

    2018-02-02 15:20
    72
  • nginx工作模式

    nginx有两种工作模式:master-worker模式和单进程模式。在master-worker模式下,有一个master进程和至少一个的worker进程,单进程模式顾名思义只有一个进程。这两种模式...

    2018-02-02 15:03
    782
  • nginx配置解析过程分析

    nginx在启动,reload和平滑升级时,都会重新加载配置。重新加载配置分成两步: 1. 重新加载命令行参数(-g)中定义的全局配置 2. 重新加载配置文件中的配置 解析配置的核心函数是ngx...

    2018-02-02 14:39
    83
  • ngx_cycle_t结构体及ngx_cycle_init函数分析

    一  ngx_cycle_t结构体 ngx_cycle_t对应于nginx的一次启动,配置重新加载,或者平滑升级。 struct ngx_cycle_s { void ...

    2018-02-01 18:57
    63
  • http框架核心之ngx_http.c源码分析

    ngx_http.c内主要实现了一个模块:ngx_http_module。ngx_http_module是nginx的http框架的一部分,它是所有http模块能够被加载的唯一入口,承担了http块配...

    2018-02-05 15:27
    59
  • nginx的配置文件及指令介绍

    nginx的配置文件是由一系列的指令构成的。指令可以分为三种:注释,普通指令和块指令。nginx在解析配置文件时,只会解析普通指令和块指令,直接忽略注释,如下面的示例配置所示: #user n...

    2018-02-02 13:17
    53
  • nginx的模块化设计思想

    nginx的代码中,除了部分底层的核心代码之外,基本上所有的功能都是通过模块化的方式实现的,这样的设计为nginx的功能拓展提供了极大的灵活性。 nginx的模块贯穿了从启动,运行一直到结束的ngi...

    2018-02-02 11:43
    81
  • nginx的基本数据结构

    ngx_str_t 源码文件:ngx_string.h|c 定义: struct ngx_str_s { size_t len;//字符串长度 u_char ...

    2018-02-01 19:16
    69
  • nginx的configure脚本分析

    #!/bin/sh # Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. LC_ALL=...

    2018-02-01 19:15
    63
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部