0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一份Nginx模块开发与架构解析实战文档

Linux爱好者 来源:Linux爱好者 作者:Linux爱好者 2021-03-03 15:36 次阅读

Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。

今天分享一份Nginx模块开发与架构解析实战文档,文档35.6 MB内容全部可复制!相信看完后对Nginx会有更深入的了解。

这份文档的价值

资料共三部分,首先通过介绍官方Nginx的基本用法和配置规则,帮助大家了解一般Nginx模块的用法,然后重点介绍了如何开发HTTP模块(含HTTP过滤模块)来得到定制化的Nginx,其中包括开发一个功能复杂的模块所需要了解的各种知识,并对内存池的实现细节及TCP协议进行了详细介绍;接着,综合Nginx框架代码分析了Nginx架构的设计理念和技巧,此外,还新增了如何在模块中支持HTTP变量,以及与slab共享内存等相关的内容。

通过这份资料,你可以学到:

对Nginx及如何将它搭建成一个高性能的Web服务器有深入的了解。

通过开发特定的HTTP模块实现高性能Web服务器。

了解Nginx的架构设计,学习其怎样充分使用服务器上的硬件资源。

了解如何快速定位、修复Nginx中深层次Bug。

利用Nginx提供的框架,设计出任何基于TCP的、无阻塞的、易于扩展的服务器。

由于内容过多,在此只以截图展示部分内容,详细完整版的文档网盘链接和提取码请见文末。

第1章研究Nginx前的准备工作:

什么是Nginx?它有哪些特点?我们选择Nginx的理由是什么?如何编译安装Nginx?这种安装方式背后隐藏的又是什么样的思想呢?本章将会回答上述问题。

第2章Nginx的配置:

通过本章的学习,大家可以熟练地配置一个静态Web服务器:对影响Web服务器性能的各个配置项有深入的理解:对配置语法有全面的了解。通过互联网或其他途径得到任意模块的配置说明,然后可通过修改nginx. conf文件来使用这些模块的功能。

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

本章不会深入探讨HTTP模块与Nginx的各个核心模块是如何配合工作的,而且这部分提到的每个接口将只涉及用法而不涉及实现原理,在第3部分我们才会进一步阐述本章提到的许多接口是如何实现异步访问的。

第4章配置、error日志和请求上下文:

编写全异步的HTTP模块时,必须要有上下文来维持一个请求的必要信息,在4.5节中,首先探讨请求的上下文与全异步实现的Nginx服务之间的关系,以及如何使用HTTP上下文,然后简单描述HTTP框架是如何管理请求的上下文结构体的。

第5章访问第三方服务:

本章仍然以mytest模块为例进行说明,但会扩展mytest的功能。注意,文中没有提及的代码(如定义nytest模块)都与第3章完全相同。

第6章开发一个简单的HTTP过滤模块:

介绍如何开发HTTP过滤模块。

第7章Nginx提供的高级数据结构:

将介绍Nginx实现的6个基本容器,熟练使用这6个基本容器,将会大大提高开发Nginx模块的效率,也可以更加方便地实现复杂的功能。

第三部分针对高级读者,这是本书的重点,彻底解析Nginx架构,深入探讨Nginx各种设计的目的与意义,并对第二部分使用到的一些特性进行代码设计实现上的探索。读者读完本部分,会对整个Nginx架构有清晰的认识,可以编写各种模块(不局限于http模块)插入到Nginx中,从而定制自己的Nginx。

第8章Nginx基础架构:

实现高性能、定制化的Web服务器功能。

第9章事件模块:

全面探讨Nginx的事件驱动机制是如何工作的。

第10章HTTP框架的初始化:

将探讨事件消费模块的大户”HTP 模块。Nginx作为Web服务器,其HTTP模块的数量远超过了其他4类模块(核心模块、事件模块、配置模块、邮件模块),其代码规模也同样遥遥领先。

第11章HTTP框架的执行流程:

介绍动态的HTTP框架,主要探讨在请求的生命周期中,基于事件驱动的HTTP框架是怎样处理网络事件以及怎样集成各个HTTP模块来共同处理HTTP请求的,同时,还会介绍为了简化HTTP模块的开发难度而提供的多个非阻塞的异步方法。

第12章upstream机制的设计与实现:

讨论ustream机制的设计和实现,以此帮助大家全面了解如何使用upstream访间上游服务器。

第13章邮件代理模块:

介绍邮件代理功能到底做了哪些事情,会分析Nginx如何实现邮件代理功能。

第14章进程间的通信机制:

这部分并不是说明Linux F有哪些进程通信方式,而是为了说明Nginx选择了哪些方式来同Bmaster进程和多个worker进程间的数据,Nginx框架是怎样重新封装了这些进程间通信方式

第15章变量:

Nginx有许多功能体现在nginx.com这个脚本式的配置文件里,这些配置项的格式五花八门、风格各异,原因是它们都由各Nginx模块自定义,并没有什么统一的标准,这在第4章已经提及。

第16章slab共享内存:

本章除了说明如何使用它以外,同时还会详细介绍实现原理,从中我们可以发现它的设计初衷及不适用的场景。Slab实现的源代码非常高效,然而却也有些生涩,本章会较多地通过源代码说明各种二进制位操作,以帮助大家学习slab的编码艺术。

责任编辑:lq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2056

    浏览量

    45717
  • Web服务器
    +关注

    关注

    0

    文章

    119

    浏览量

    24154
  • nginx
    +关注

    关注

    0

    文章

    116

    浏览量

    11882
收藏 人收藏

    评论

    相关推荐

    求提供一份K210的开发板硬件设计参考

    一份K210的开发板硬件设计参考,和一份Datasheet,谢谢
    发表于 09-13 08:30

    谁有《LabVIEW入门与实战开发100例 》电子书可否发一份给我...

    实战开发100例 》电子书可否发一份给我...邮箱:750323269@qq.com {:soso_e178:}
    发表于 09-24 11:44

    一份常用运放电路设计 NI文档值得收藏

    一份常用运放电路设计 NI文档值得收藏{:1:}
    发表于 05-17 22:36

    哪位童鞋有labview的帮助文档,能给我一份

    文档,能给我一份不,为啥我点即时帮助下的问号没有用还让软件死机
    发表于 06-02 21:48

    请问谁有STM32库开发实战指南(刘火良,杨森) 机械工业出版社.pdf版,可以发我一份吗?邮箱:1512160785@qq.com

    开发实战指南(刘火良,杨森) 机械工业出版社.pdf版,可以发我一份吗?邮箱:1512160785@qq.com
    发表于 07-12 23:26

    stm32的库开发实战指南

    开发实战指南,给我来一份,谢了!1211639441
    发表于 10-18 21:07

    一份红外循迹模块的原理图!

    一份红外循迹模块的原理图,有PCB图当然更好了~~~据说TCRT5000这个效果挺好的,有这个的就最好了~~~新人急需帮助啊!!
    发表于 11-15 11:49

    求给一份labview的帮助文档,中文的,谢谢

    一份labview的帮助文档,中文的,谢谢
    发表于 02-15 17:25

    如何读懂一份datasheet文档

    一份datasheet
    发表于 11-05 14:57

    一份CH57x BLE协议栈库说明以及TMOS说明使用文档

    一份CH57x BLE协议栈库说明以及TMOS说明使用文档吗?谢谢!!
    发表于 09-01 06:06

    构建实战Nginx+IIS构筑Web服务器集群负载均衡

    实战Nginx+IIS构筑Web服务器集群负载均衡
    发表于 09-05 10:56 4次下载
    构建<b>实战</b>:<b>Nginx</b>+IIS构筑Web服务器集群负载均衡

    Nginx将支持更多的模块

    模块,例如网页安全,授权以及整合第三方的语言包等等。Nginx将集成个仓库并支持这些模块,确保他们编译和测试通过。 模块是用C语言开发的,大多数都由社区之外的开发者编译。之前,Nginx Plus的用户只能通过个特殊
    发表于 10-11 11:25 0次下载

    一份电源技术课程设计论文模板资料免费下载

    文档的主要内容详细介绍的是一份电源技术课程设计论文模板资料免费下载。
    发表于 12-29 08:00 45次下载

    JavaScript模块化开发实验---webpack入门

    模块化开发实验---webpack入门(现代电源技术试题及答案)-文档为JavaScript模块化开发实验---webpack入门总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,
    发表于 09-17 14:49 7次下载
    JavaScript<b>模块化开发</b>实验---webpack入门

    DC电源模块方案开发

    模块方案开发(通用电源技术_深圳)有限公司)-该文档为DC电源模块方案开发总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,,,,
    发表于 09-22 14:23 22次下载
    DC电源<b>模块</b>方案<b>开发</b>