《深入剖析Nginx》——1.3 源码目录结构-阿里云开发者社区

开发者社区> 开发与运维> 正文

《深入剖析Nginx》——1.3 源码目录结构

简介:

本节书摘来自异步社区《深入剖析Nginx》一书中的第1章,第1.3节,作者: 高群凯 更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 源码目录结构

将Nginx源码包解压后,目录文件如下所示。

[root@localhost nginx-1.2.0]# ls -F
auto/  CHANGES  CHANGES.ru  conf/  configure*  contrib/  html/  LICENSE  man/  README  src/

其中

  • auto/:包含了很多会在执行configure进行编译配置时调用的检测代码。
  • CHANGES:Nginx的版本更新细节记录。英文版。
  • CHANGES.ru:Nginx的版本更新细节记录。俄文版。
  • conf/:Nginx提供的一些默认配置文件。
  • configure*:根据系统环境设定Nginx编译选项的执行脚本。
  • contrib/:网友贡献的一些有用脚本。
  • html/:提供了两个默认html页面,比如index.html的Welcome to nginx!。
  • LICENSE:声明的Nginx源码许可协议。
  • man/:Nginx的Man手册,本文文件,可直接用vi或记事本打开。
  • README:读我文件,内容很简单,通告一下官网地址。
  • src/:Nginx源码,分门别类,比如实现事件的event等,很清晰。

执行configure脚本后将生成Makefile文件和objs目录,这是根据当前系统环境生成的相关编译配置。Nginx并没有使用Autoconf1和Automake2等这样的自动化工具来做这个工作,而都是手动编码实现的。比如当Nginx判断当前Linux系统是否支持epoll时,它采用的方法就是编写一款小应用程序,并在其中调用epoll_create()函数,然后再根据它是否可被正常编译执行来做这个判断。具体可参考文件nginx-1.2.0/auto/os/linux和nginx-1.2.0/auto/feature内相关代码。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章