zoukankan      html  css  js  c++  java
  • Nginx源码结构

    上一章对Nginx的架构有了一个初步的了解。这章,为了对源码仔细的剖析,先要对Nginx的源码结构有一个了解。从宏观上把握源码模块的结构。

     

    一.nginx源码的3个目录结构

    在安装的nginx的目录下,有一个目录src,这里边存放了nginx的所有源代码,包括:core,event, http, mail,misc,os

    其中

    1)mai目录中存放了实现Nginx服务器的邮件服务的源码,主要实现对邮件服务依赖的数据结构的定义和初始化,像SMTP, POP3, IMAP, SSL的支持

    2)misc目录中存放了两个文件:ngx_cpp_test_module.cpp文件实现的功能是测试程序中引用的头文件是否与C++兼容;

                                              ngx_google_perftools_module.c文件是用来支持Google PerTools的使用的。

    3)os目录其中包含一个Unix目录,存放的是针对“类unix系统“,像Solaris等情况;

    4)core目录,event目录,http目录是重点;

    ####三个目录简单的情况####

    (1)core目录

    这个目录中存放了nginx的关键数据结构和内核源码实现

     在这个目录中还包括Ngx_cycle.*文件, ngx_log.*文件, ngx_string.*文件,ngx_array.*, ngx_list.*, ngx_hash.*等和一些重要的内存管理的源码。

    (2)event目录

    这个目录里包含Nginx服务器的事件驱动模型,实现了nginx服务器的消息机制。在modules目录下包括:AIO, epoll, kqueue, rtsig等。

    (3)http目录

    该目录下的源码为Nginx服务器提供了web服务提供了主要支持。

    二.Nginx源码的模块化结构

    为了使清楚的了解nginx的源码结构,分成了8个模块;

    (1)公共功能部分

    (2)内存管理

    这部分实现了Nginx服务器的内存管理,包括内存池的管理,公共内存的分配,缓存区的管理等

    (3)事件驱动

    (4)日志管理

    (5)Http服务

    (6)mail服务

    (7)模块支持

    综上,把nginx的基本源码用图形的形式表示出来,可以更加清楚了解结构。

    参考《Nginx高性能Web服务器详解》

  • 相关阅读:
    Java 写GBK 、utf8格式的文件 java
    NIOnio的美文分享一下,最近喜欢上了Nio希望能给大家扫扫盲
    maven入门和进阶 基础入门 希望帮助大家maven 教程
    log4j 基础
    FastDFS架构剖析(非常值得一看的架构分析和解读)
    FastDFS分布式文件系统问题总汇
    oracle 建表创建外键
    Mybatis下log4j日志输出不正常的解决办法 ,很实用哦 !!!!
    httpclient入门例子 demos
    Firebug http请求响应时间线
  • 原文地址:https://www.cnblogs.com/dormant/p/5220505.html
Copyright © 2011-2022 走看看