Nginx源码结构
2016-02-26 15:11
459 查看
上一章对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服务器详解》
一.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服务器详解》
相关文章推荐
- nginx中的MIME.types的作用
- nginx 错误日志级别设置
- nginx开发(一) 源码-编译
- CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
- file not found. nginx php nginx 如何开启解析 PHP 的功能
- Nginx实战进阶篇一
- Nginx的负载均衡配置
- nginx配置ci框架
- Nginx的alias的用法及与root的区别
- Nginx服务器架构简析
- Nginx配置
- Linux---Nginx平滑升级graceful
- 菜鸟nginx源代码剖析 配置与部署篇(一) 手把手实现nginx "I love you"
- nginx Gateway Time-out 处理方法
- nginx-rtmp-module和ffmpeg搭建流媒体服务器
- Nginx学习笔记七Nginx的Web缓存服务
- nginx: [emerg] unknown "scripts" variable
- nginx启动、关闭、重启
- Nginx配置文件nginx.conf中文详解
- Nginx的负载均衡的那点事