博客专栏  >  互联网   >  理解 Nginx 源码

理解 Nginx 源码

本专栏是对 Nginx 高性能服务器源码的学习与理解。根据对其源码的解读,了解Nginx服务器的基本框架。

关注
13 已关注
21篇博文
  • Nginx 中 upstream 机制的负载均衡

    负载均衡upstream 机制使得 Nginx 以反向代理的形式运行,因此 Nginx 接收客户端的请求,并根据客户端的请求,Nginx 选择合适后端服务器来处理该请求。但是若存在多台后端服务器时,N...

    2015-02-06 19:30
    2527
  • Nginx 中 upstream 机制的实现

    在Nginx中调用 ngx_http_upstream_init 方法启动 upstream 机制,但是在使用 upstream 机制之前必须调用ngx_http_upstream_create 方法...

    2015-02-05 09:58
    2105
  • Nginx 中处理 HTTP 请求

    在 Nginx 的初始化启动过程中,worker 工作进程会调用事件模块的 ngx_event_process_init 方法为每个监听套接字 ngx_listening_t 分配一个 ngx_con...

    2015-01-31 09:13
    4546
  • Nginx 中 HTTP 模块初始化

    本文更具体的分析 HTTP 模块的初始化过程。HTTP 模块初始化过程主要有:上下文结构初始化、配置项解析、配置项合并、server 相关端口设置。

    2015-01-24 10:48
    4637
  • Nginx 事件驱动模块连接处理

    由于 Nginx 工作在 master-worker 多进程模式,若所有 worker 进程在同一时间监听同一个端口,当该端口有新的连接事件出现时,每个 worker 进程都会调用函数 ngx_eve...

    2015-01-19 20:16
    1606
  • Nginx 定时器事件

    在 Nginx 中定时器事件的实现与内核无关。在事件模块中,当等待的事件不能在指定的时间内到达,则会触发 Nginx 的超时机制,超时机制会对发生超时的事件进行管理,并对这些超时事件作出处理。对于定时...

    2015-01-18 22:07
    1452
  • Nginx 的 epoll 事件驱动模块

    本文介绍在 Linux 系统下基于 Nginx 的事件驱动框架以及不同类型事件驱动模块的管理的 epoll 事件驱动模块。

    2015-01-18 17:29
    1958
  • Nginx 事件模块

    Nginx 是以事件的触发来驱动的,事件驱动模型主要包括事件收集、事件发送、事件处理(即事件管理)三部分。在 Nginx 的工作进程中主要关注的事件是 IO 网络事件 和 定时器事件。

    2015-01-17 20:59
    3767
  • Nginx 源码结构分析

    学习 Nginx 的构架之前,对 Nginx 源码结构进行简单的分析,可以了解 Nginx 模块结构以及模块之间的关系。充分理解 Nginx 的基本构架。解压源码到相应的文件后,我们可以看到有一个存放...

    2015-01-15 18:01
    1723
  • Nginx 中的 upstream 与 subrequest 机制

    Nginx 提供了两种全异步方式与第三方服务进行通信:upstream 和 subrequest。upstream 在与第三方服务器交互时(包括建立 TCP 连接、发送请求、接收响应、关闭 TCP 连...

    2015-01-14 21:22
    2955
  • Nginx 配置解析

    简单介绍了 Nginx 启动的过程,并分析了其启动过程的源码。在启动过程中有一个步骤非常重要,就是调用函数 ngx_init_cycle(),该函数的调用为配置解析提供了接口。配置解析接口大概可分为两...

    2015-01-12 09:07
    2421
  • Nginx 启动初始化过程

    本节分析了 Nginx 启动过程的源码

    2015-01-11 16:27
    1590
  • Nginx 模块开发

    通常,服务器启动时,任何 Handler 模块都有可能去处理配置文件中的位置(location)定义。若出现多个Handler 模块被配置成需要处理某一特定的位置location 时,最终只有其中一个...

    2015-01-09 10:22
    6970
  • Nginx 红黑树结构 ngx_rbtree_t

    本文分析了 Nginx 红黑树的源码实现,其基本实现跟算法导论中的红黑树是一样的。

    2015-01-07 17:41
    1602
  • Nginx 哈希表结构 ngx_hash_t

    哈希表结合了数组和链表的特点,使其寻址、插入以及删除操作更加方便。哈希表的过程是将关键字通过某种哈希函数映射到相应的哈希表位置,即对应的哈希值所在哈希表的位置。但是会出现多个关键字映射相同位置的情况导...

    2015-01-06 22:07
    1348
  • Nginx 队列双向链表结构 ngx_queue_t

    在 Nginx 的队列实现中,实质就是具有头节点的双向循环链表,这里的双向链表中的节点是没有数据区的,只有两个指向节点的指针。需注意的是队列链表的内存分配不是直接从内存池分配的,即没有进行内存池管理,...

    2015-01-06 09:58
    1645
  • Nginx 链表结构 ngx_list_t

    ngx_list_t 是 Nginx 封装的链表容器,链表容器内存分配是基于内存池进行的,操作方便,效率高。Nginx 链表容器和普通链表类似,均有链表表头和链表节点,通过节点指针组成链表。

    2015-01-04 20:59
    1320
  • Nginx 数组结构 ngx_array_t

    在 Nginx 数组中,内存分配是基于内存池的,并不是固定不变的,也不是需要多少内存就申请多少,若当前内存不足以存储所需元素时,按照当前数组的两倍内存大小进行申请,这样做减少内存分配的次数,提高效率。

    2015-01-04 14:39
    1267
  • Nginx 基本数据结构

    在学习 Nginx 之前首先了解其基本的数据结构是非常重要的,这是入门必须了解的一个步骤。本节只是简单介绍了 Nginx 对基本数据的一种封装,包括 基本整型数据类型、字符串数据类型、缓冲区类型以及 ...

    2015-01-04 11:15
    1223
  • Nginx 内存池管理

    本文简单介绍了Nginx 内存池的管理机制。 Nginx 使用内存池对内存进行管理,把内存分配归结为 大内存分配 和 小内存分配。若申请的内存大小比同页的内存池最大值 max 还大,则是大内存分配...

    2015-01-03 21:53
    1465

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部