nginx源码分析_目录分析(二)

本文介绍了Nginx源码的基本结构及目录组织方式。详细分析了configure脚本的作用及如何生成版本信息头文件和Makefile文件。同时,对auto目录下的脚本文件和src目录下的核心源码进行了说明。

文章概述:

  1. 源码之简介
  2. 源码之目录介绍
  3. 参考文献

一、 nginx源码之简介

      Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。

     代码完全用c语言编写。我对于其中它对内存的分配、module框架的构建以及http实现这几块非常的感兴趣。

     由于自己的C语言相当的水,所以边看源代码变学习也是个不错的过程。

 

二、 nginx之目录的介绍

    下载nginx源码之后,解压之后,根目录下有几个子目录和几个文件,最重要的子目录是auto和src,最重要的文件是configure脚本,不同于绝大多数的开源代码,nginx的 configure脚本是作者手工编写的,没有使用autoconf之类的工具去自动生成,configure脚本会引用auto目录下面的脚本文件来干活。

    对于nginx分析,

    configure作为一个总驱动,调用这些脚本去生成版本信息头文件、默认被包含的模块的声明代码和Makefile文件,版本信息头文件 (ngx_auto_config.h,ngx_auto_headers.h)和默认被包含的模块的声明代码(ngx_modules.c)被放置在新 创建的objs目录下。要注意的是,这几个生成的文件和src下面的源代码一样重要。要运行一下 ./configure 在目录文件下会得到一个objs,这个文件夹也是相当的重要,主要包含了Makefile文件和nginx所有模块的ngx_module.c 文件

 

  对于auto目录

  configure脚本会引用auto目录下面的脚本文件来干活。根据不同的用途,auto目录下面的脚本各司其职,有检查编译器版本的,有检查操作系统版本的,有检查标准库版本的,有检查模块依赖情况的,有关于安装的,有关于初始化的,有关于多线程检查的等等。

 

  对于src目录,这个是源码存放的地方,同时也是重点。

src/core存放着主干部分、基础数据结构和基础设施的源码,main函数在src/core/nginx.c中,这是分析源码的一个很好的起点。

src/event存放着事件驱动模型和相关模块的源码。

src/http存放着http server和相关模块的源码。

src/mail存放着邮件代理和相关模块的源码。

src/misc存放着C++兼容性测试和google perftools模块的源码。

src/os存放着依赖于操作系统实现的源码,nginx启动过程中最重要的master和workers创建代码就在这个目录下

 

三、参考文献:

    网址:http://blog.youkuaiyun.com/kenbinzhang/article/details/4653202

 

转载于:https://www.cnblogs.com/canxuexiecheng/p/3281403.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值