- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
手把手教你开发Nginx模块讲解
手把手教你开发Nginx模块
前面的哪些话
关于Nginx模块开发的博客资料,网上很多,很多。但是,每篇博客都只提要点,无法step by step照着做,对于初次接触Nginx开发的同学,只能像只盲目的蚂蚁瞎燥急!该篇文章没有太多技术深度,只是一步一步说明白Nginx模块的开发过程。
开发环境搭建
工欲善其事,必先利其器。个人推荐Eclipse CDT 作为IDE,原因很简单,代码提示与补全功能很全,完胜Codeblock这类...相信与否,试过就知道。
在ubuntu下搭建开发环境:
安装GCC编译器
apt-get install build-essential
安装pcre/openssl/zlib开发库
apt-get install libpcre3-dev
apt-get install libssl-dev
apt-get install libzip-dev
必需安装nginx核心模块依赖的pcre,openssl,zilib开发库
安装JRE/Eclipse CDT
apt-get install openjdk-8-jre
wget http://ftp.yz.yamagata-u.ac.jp/pub/eclipse//technology/epp/downloads/release/neon/R/eclipse-cpp-neon-R-linux-gtk-x86_64.tar.gz tzr -xzvf eclipse-cpp-neon-R-linux-gtk-x86_64.tar.gz
下载nginx源码
wget /download/nginx-1.10.1.tar.gz tar -xzvf nginx-1.10.1.tar.gz
配置CDT Build Environment
添加变量,值Nginx src下各模块路径,用冒号分隔,例如:
/root/Workspace/nginx-1.10.1/src/core:/root/Workspace/nginx-1.10.1/src/event:/root/Workspace/nginx-1.10.1/src/http:/root/Workspace/nginx-1.10.1/src/mail:/root/Workspace/nginx-1.10.1/src/stream:/root/Workspace/nginx-1.10.1/src/os/unix
添加环境变量,创建C项目时自动作为-I选项
image
image
Nginx模块编译流程
Nginx使用configure脚本分析环境,自动生成objs结果。哪么configure如何编译第三方模块?答案是--add-module指定第三方模块目录,并将目录存为$ngx_addon_dir环境变量。执行$ngx_addon_dir/config脚本,读取模块配置。在config中的环境变量分为2种:小写的本地环境变量,大写的全局环境变量。例如:
ngx_addon_name=ngx_http_mytest_module
HTTP_MODULES=$HTTP_MODULES ngx_http_mytest_module
NGX_ADDON_SRCS=$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_mytest_moudle.c
CORE_LIBS=$CORE_LIBS -lpcre
HTTP_MODULES中的ngx_http_mytest_module就是NGX_ADDON_SRCS中源码(如果有多个,都要写上)ngx_http_mytest_module.c中定义的ngx_module_t类型的全局变量。
可见,第三方模块的入口点就是ngx_module_t类型全局变量,该变量又关联ngx_http_module_t类型static变量,与ngx_command_t类型static数组。
在ngx_http_module_t中定义上下文配置nginx.conf解析的回调方法。
在ngx_command_t中定义配置项处理的set回调方法。
Nginx的全部操作都是异步的。在上述的方法中根据需要又会使用其他handler方法。
以上可以看成Nginx第三方模块的起式。
Upstream例子源码
config
ngx_addon_name=ngx_http_mytest_module
HTTP_MODULES=$HTTP_MODULES ngx_http_mytest_module
NGX_ADDON_SRCS=$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_mytest_
您可能关注的文档
- 工程机械电气设备实验指导书讲述.doc
- 房地产礼仪培训讲解.ppt
- 工程施工现场质量通病的控制措施讲述.doc
- 医院-智慧医疗解决方案V2精要.ppt
- 房地产调控讲解.ppt
- 工程材料与成型技术基础复习总结讲述.doc
- 房地产销售客户管理:售前、售中、售后(专业经典).讲解.ppt
- 房屋建筑概论习题答案2015讲解.doc
- 房屋建筑工程冬期施工方案讲解.doc
- 房地产行业客户服务人员培训(礼仪版)讲解.ppt
- 华为IPD集成产品开发流程项目现状调研报告【51页】.pptx
- DeepSeek本地部署教程(本地知识库搭建、实际应用场景)(55页).pptx
- DeepSeek自学手册:从理论(模型训练)到实践(模型应用)2025.pdf
- AI Agent元年,企业服务有望最先落地(39页).pptx
- 2025499_勇往直前__凯迪拉克XTS技术解读.pdf
- 中观景气度高频跟踪:中观景气度数据库和定量模型应用-241216-天风证券-17页.pdf
- 2025年中国空气压缩机缸头市场调查研究报告.docx
- [南京]2025年江苏南京特殊教育师范学院招聘人事代理人员笔试历年参考题库附带答案详解.docx
- 2025至2031年中国立体壁纸漆行业投资前景及策略咨询研究报告.docx
- 2025至2030年中国高压内冷铰刀数据监测研究报告.docx
最近下载
- 2025年湖南石油化工职业技术学院单招职业技能测试题库(各地真题).docx VIP
- 上海市六年级(下)数学同步讲义 第11讲 一元一次不等式(组)及其解法.doc VIP
- 人教版语文七年级下 列夫托儿斯泰课件(共45张PPT).pptx VIP
- 佳能(Canon )PowerShot SX系列 PowerShot SX1 IS 说明书.pdf
- 1.2 太空探索课件-七年级地理上学期中图版(2024).pptx VIP
- 人教版小学一年级数学课件- 两位数加一位数(不进位)、整十数.ppt
- 四人赛全真总题库(共3000题).docx VIP
- 2025新外研社版英语七年级下单词表(英译汉).docx
- 幼儿园大班语言:傻小熊进城.doc VIP
- 小肠梗阻的诊断与治疗中国专家共识(2023年版).pptx
文档评论(0)