《深入理解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部分我们才会进一步阐述本章提到的许多接口是如何实现异步访问的。

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

分享: