Nginx二次开发(1.1)初解目录
来源:互联网 发布:paxos算法视频教程 编辑:程序博客网 时间:2024/06/07 02:49
1.1nginx的目录构成
图1-1nginx目录结构
auto:自动编译安装相关目录
conf:相关配置文件等目录,包括nginx的配置文件、fcgi相关的配置等
html:网页存放位置,如index.html、50x.html
src:源码目录
编译时,configure脚本会引用auto目录下面的脚本文件,如在configure文件中有如下几行代码:
引用的就是auto目录下的options、init、sources脚本
1)auto
其中auto目录下的目录文件组成如下图:
图1-2auto目录结构
cc:针对各种编译器进行相应的编译配置目录,这个目录下的脚本会检查编译器类型和版本,如 Gcc、Ccc等,见图1-3 cc目录组成
lib: 程序依赖的各种库, 这个目录下的脚本会检查所需要的标准库的版本如md5,openssl,pcre等
os: 针对不同操作系统所做的编译配置目录,检查操作系统版本
图1-3 cc目录组成
编译时,configure脚本会引用auto目录下面的脚本文件,在configure文件中第58行、第98行负责将第三方模块加入到nginx中。
2)src
其中src目录下的结构如图1-4 src目录结构:
图1-4src目录结构
core:核心源码目录,如自定义常用数据结构(ngx_str_t、ngx_buf_t、ngx_chain_t等)、体系结构实现等,nginx的入口main函数就在此目录下的nginx.c文件中
event: 封装事件相关的源码目录
http: http服务器实现目录,后期要研究的很多模块实现均在这个目录中
mail: 邮件代码服务器实现目录
misc: 该目录当前版本只包含google perftools包
os: nginx对各操作系统下的函数进行封装以及实现核心调用的目录,如nginx发送响应数据时,实际调用的就是此目录下的ngx_linux_sendfile_chain函数(ngx_linux_sendfile_chain.c),而ngx_linux_sendfile_chain函数又通过判断数据是内存中还是磁盘上然后调用writev或sendfile函数
3)编译安装nginx,默认安装在/usr/local/nginx,可执行文件在/usr/local/sbin目录下。如果指定安装目录,会在安装目录下生成一个objs目录。如果环境满足要求,则会在objs目录下生成Makefile、ngx_auto_config.h 、ngx_auto_headers.h 、ngx_modules.c 等文件,此外还会生成一个名为src的目录。objs目录结构见图1-5 objs目录结构
图1-5objs目录结构
src:这个目录与前面介绍的src目录虽然子目录相同,但子目录下的文件不同。这个src目录的子目录下的文件都是一些后缀名为o的镜像文件
ngx_auto_config.h:根据环境检查的结果声明的一些宏定义,调用configure文件后生成
ngx_auto_headers.h:版本信息头文件,调用configure文件后生成
ngx_modules.c:非常重要,包含模块的声明代码。在这个文件中,数组ngx_module_t定义了Nginx要加载的模块,可以从此数组看出模块的执行顺序。可以通过修改这个文件去掉一些模块。在开发nginx模块时,也可以通过修改这个文件与Makefile文件实现添加自定义模块的目的。- Nginx二次开发(1.1)初解目录
- Nginx二次开发(2)进程
- Nginx二次开发(1.3)Nginx数据类型
- 二次开发目录
- Nginx二次开发(1.2)安装调试
- yourphp二次开发目录
- WSTMart二次开发目录说明
- Nginx系列(十八.)nginx列出目录
- DISCUZ二次开发目录结构基本知识
- ecshop二次开发文件目录大全
- nginx功能(1)--目录配置
- Discuz7.0程序二次开发必备:目录详解
- php分享网ecshop二次开发视频教程目录
- nginx 访问目录身份验证
- nginx linux 目录地址
- Nginx 配置目录访问
- Nginx限制目录访问
- django&nginx静态目录
- 欢迎大家访问我的博客!
- HandlerThread使用教程(一)
- 黑马程序员——JAVA基础-IO流(一)
- ubuntu 12.04 安装在VMware 8不能共享文件解决办法
- PAT 1090 Highest Price in Supply Chain
- Nginx二次开发(1.1)初解目录
- android中的ContentResolver获取手机本地图片
- dive into python
- solr5.0增加中文分词库
- 移动端body宽度不正常问题解决
- 字符串函数的原型实现(strcpy, strcat, strcmp, memset, memcpy, memmove)
- 将here doc输出的内容保存到文件,当文件超过阈值,动态更新文件名
- HDU 3065 病毒侵袭持续中(AC自动机)
- 最小生成树(MST)三种实现方法C++版本