《深入理解Nginx:模块开发与架构解析》一第3章 开发一个简单的HTTP模块 3.0-阿里云开发者社区

开发者社区> 华章计算机> 正文

《深入理解Nginx:模块开发与架构解析》一第3章 开发一个简单的HTTP模块 3.0

简介: 本节书摘来自华章出版社《深入理解Nginx:模块开发与架构解析》一书中的第3章,第3.0节,作者 陶辉,更多章节内容可以访问云栖社区“华章计算机”公众号查看
+关注继续查看

第3章 开发一个简单的HTTP模块

当通过开发HTTP模块来实现产品功能时,是可以完全享用Nginx的优秀设计所带来的、与官方模块相同的高并发特性的。不过,如何开发一个充满异步调用、无阻塞的HTTP模块呢?首先,需要把程序嵌入到Nginx中,也就是说,最终编译出的二进制程序Nginx要包含我们的代码(见3.3节);其次,这个全新的HTTP模块要能介入到HTTP请求的处理流程中(具体参见3.1节、3.4节、3.5节)。满足上述两个前提后,我们的模块才能开始处理HTTP请求,但在开始处理请求前还需要先了解一些Nginx框架定义的数据结构(见3.2节),这是后面必须要用到的;正式处理请求时,还要可以获得Nginx框架接收、解析后的用户请求信息(见3.6节);业务执行完毕后,则要考虑发送响应给用户(见3.7节),包括将磁盘中的文件以HTTP包体的形式发送给用户(见3.8节)。
本章最后会讨论如何用C++语言来编写HTTP模块,这虽然不是Nginx官方倡导的方式,但C++向前兼容C语言,使用C++语言开发的模块还是可以很容易地嵌入到Nginx中。本章不会深入探讨HTTP模块与Nginx的各个核心模块是如何配合工作的,而且这部分提到的每个接口将只涉及用法而不涉及实现原理,在第3部分我们才会进一步阐述本章提到的许多接口是如何实现异步访问的。

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

相关文章
Ubuntu15.10下如何使用EasyGui模块开发Python GUI
偶然的一个机会,发现了github上的这个开源的项目,easygui for python(一个基于TKinter的模块) 感觉很是惊讶,原来python也可以这么简单的开发出一些GUI界面(究其原因,是我自身的孤陋寡闻罢了)。
965 0
蚂蚁金服服务注册中心数据一致性方案分析 | SOFARegistry 解析
SOFARegistry 主要特点在于支持海量数据、支持海量客户端、秒级的服务上下线通知以及高可用特性。本文将从几个方面来讲述 SOFARegistry 的一致性方案。
303 0
模块开发中一点疑惑?
Q:我想做一个跟博客一样。左边是类别列表,点击某类别后,右边显示该类别的所有文章标题列表,然后再点击文章标题就可以查看文章。要实现这样的功能,左边的列表和显示文章放同一个模块中,那不好吧?难道类别列表和右边文章显示都分别做成模块?到底如何做才好。
467 0
【.Net MF网络开发板研究-02】Http Server功能演示
文章介绍的是真正的Http Server,支持GET和POST功能。同样我们还是在官方示例Http Server上进行修改,为了使示例更清晰,我们尽可能把代码做的更简单一些。
403 0
微信小程序开发(6) SSL证书及HTTPS服务器
1. 域名 在万网购买,略   2. 云服务器 阿里云购买,略   3. 安装lnmp 使用lnmp.org程序,略   4. 申请证书 阿里云-管理控制台-安全(云盾)-证书服务-购买证书证书类型: 免费型DV SSL选择品牌: Symantec 购买成功后,绑定域名,配置DNS解析记录生效   5.
2527 0
蚂蚁金服服务注册中心数据分片和同步方案详解 | SOFARegistry 解析
本文为《剖析 | SOFARegistry 框架》第四篇,本篇作者明不二。本篇将讲述在海量服务注册场景下,为保障 DataServer 能否无限扩容面对海量数据的业务场景,SOFARegistry 是如何进行数据分片,保障了数据的可扩展性~
617 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载