Nginx模块开发1_明白自定义模块的编译流程
自定义模块的编译流程
--add-module参数
configure使用--add-module参数指定添加模块目录.config脚本
由--add-module指定的目录保存为$ngx-addon-dir环境变量. 其他环境变量由$ngx-addon-dir下的config脚本提供.- 局部环境变量用小写表示,例如
- $ngx_addon_dir,
- $ngx_addon_name.
- 全局环境变量用大写表示,例如
- $NGX_ADDON_SRCS
- HTTP_MODULES
- CORE_LIBS
...等等
- 局部环境变量用小写表示,例如
编译流程
./configure --add-moudle=/root/workspace/ngx_http_heelo_world_module
- configure将--add-moudle选项值导出为$ngx_addon_dir环境变量
- configure执行$ngx_addon_dir/config脚本,导出其他环境变量. 局部环境变量用小写表示,全局环境变量用大写表示. 关键环境变量:
ngx_addon_name=ngx_http_hello_world_module #指定模块名,显示在ngx_modules数组
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_hello_world_module.c" #指定模块源文件,如果多个,全部加上.
HTTP_MODULES="$HTTP_MODULES ngx_http_hell_world_module" #在源文件定义的ngx_module_t类型全局变量
- configure根据导出的环境变量生成objs/Makefile以及ngx_modules.c等文件.
这样,你就明白了为什么 源文件里必须定义"ngx_module_t ngx_http_hello_world_module"? 另外,其他配置或函数通过ngx_module_t数据结构指定. 换言之, ngx_module_t全局变量就是模块的编加载点.
Nginx模块开发1_明白自定义模块的编译流程的更多相关文章
- 【Nginx】开发一个HTTP过滤模块
与HTTP处理模块不同.HTTP过滤模块的工作是对发送给用户的HTTP响应做一些加工. server返回的一个响应能够被随意多个HTTP过滤模块以流水线的方式依次处理.HTTP响应分为头部和包体,ng ...
- Maven多模块开发SpringBoot项目自定义第三方依赖版本
参考:官方文档 - Build System of Maven https://blog.didispace.com/books/spring-boot-reference/IX. 'How-to' ...
- nginx自定义模块编写-根据post参数路由到不同服务器
nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自 ...
- Nginx自定义模块编写:根据post参数路由到不同服务器
Nginx自定义模块编写:根据post参数路由到不同服务器 2014-05-05 15:27 blogread IT技术博客 字号:T | T Nginx可以轻松实现根据不同的url 或者 get参数 ...
- python开发学习-day05(正则深入、冒泡排序算法、自定义模块、常用标准模块)
s12-20160130-day05 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- python模块之自定义模块
模块概述 到此之前,我们都是在一个py文件里操作,接下来,我们学习模块的内容,可以从其他文件引入内容(如函数等) 1. 什么是模块 一个py文件就是一个模块,模块是一些相似功能的集合体 2. 为什么要 ...
- electron主进程引入自定义模块
对于electron以及nodejs开发,是一只小菜鸟,第一次想做个应用 只能边学边做,遇到各种各样的问题. 1.不想把所有的主进程函数放到一个文件中,这样文件比较乱,并且不好处理 想法:将另一个js ...
- 10 masterless、高可用、salt执行模块开发、sydic架构
1.salt无master 官方文档: http://docs.saltstack.cn/topics/tutorials/quickstart.html 1.使用场景 1.在项目中使用salt,写一 ...
- 从入门到自闭之Python自定义模块
自定义模块 定义:一个文件就是一个模块(能被调用的文件,模块就是一个工具箱,工具就是函数) 作用: 将代码文家化管理,提高可读性,避免重复代码 拿来就用(避免重复造轮子),python中类库比较多,提 ...
随机推荐
- JSP起源、JSP的运行原理、JSP的执行过程
JSP起源 在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变. 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序 ...
- 每天一个Linux命令(1):ls命令
转自http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html ls命令是Linux下最常用的命令.ls命令就是list的缩写,缺省下ls ...
- hdu 4039 暴力
思路:用map将每个字符串与一个数字进行对应,然后暴力统计就好了 #include<cstring> #include<iostream> #include<cstdio ...
- web服务器内置对象,或者说是ServletAPI的实例
final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; // ...
- ASP.NET MVC 4框架揭秘(微软6任MVP,高级软件顾问蒋金楠新作)
http://www.cnblogs.com/artech/
- android app性能优化大汇总(google官方Android性能优化典范 - 第1季)
大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能.从设计师的角度,他们希望App能够有更多的动画,图片等时尚元素来实现流畅的用户体验.但是Android系统很有可能无法及时完成那些复杂的界 ...
- Intent进行组件通信的一些体会
Intent进行组件通信的原理 l Intent协助应用间的交互与通讯 Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述.Android则根据此Intent的描述,负责找到对应 ...
- 2014.10.09 Andrew 学习 WPF(刘铁锰) 笔记分享
引言 主要是讲了关于WPF只是表现层的工具. 第一章: XAML : 可扩张应用程序标记语言 Extensible Application Markup Language 什么是XAML? X ...
- Centos中安装PHP的PDO MySQL扩展的教程
PHP Data Objects(PDO)扩展为 PHP 访问数据库定义了一个轻量级的一致接口.实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能.注意利用 PDO 扩展自身并 ...
- vpn连接成功后,本地无法连接外网
把在远程网络上使用默认网关前面的对勾取消掉,确定就ok啦...