《深入理解Nginx:模块开发与架构解析》一第3章 开发一个简单的HTTP模块 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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【足迹】除了打造高可用的应用环境,FreeWheel的运维还干了什么?
【51CTO.com原创稿件】可能在不少人眼中,FreeWheel这家公司很多做法都出乎意料:公司的业务、销售、市场皆在欧美,技术研发团队却以中国为主;在女性程序员如大熊猫般稀缺的IT职场中,FreeWheel近300人的北京研发中心里,女性员工居然占约四成;企业都宣传自己求贤若渴,可像FreeWheel这样为了能留住心仪的工程师居然能特意为他在纽约新建一个办公室的又有几个? 如果说FreeWheel这些外在的“迷之任性”吸引了众多求职者目光的话,那么吸引记者的,就是这家公司内在的IT架构与运维。这家欧洲、美国、中国三地办公,其广告平台为美国90%主流电视媒体和运营商所使用的跨国企业,如何保证协同的高效?FreeWheel成立十年,从刚成立时全年广告播放量累计100万次,到单日广告投放接近10亿,运维部门用什么来保证产品稳定的应用环境 ?作为对新兴技术非常敏感的高科技企业,如何选择最适合自己的技术产品? 在前后一个月的时间内,记者分别采访了FreeWheel联合创始人美女CTO Diane Yu和运维副总裁梁灏舜(Vito Leung)。通过二位的分享,解答了上文中一连串的疑问,并还原...
- 下一篇
软件定义存储在大型数据中心的应用分析
历史经验一再表明,由技术进步推动的变革往往以超乎人们想象的速度和烈度发生。SDS软件定义存储作为新兴的技术,即使穷尽你所有想象,也难以预测其发展的速度有多快,影响的程度有多深远。面对新的变革和潮流,在追逐变化的同时,还需冷静思考可能带来的问题。SDS在数据中心的应用一定能提高性能和降低成本,并可控风险么?SDS会隐藏什么样的问题? 问题一、不能充分利用现有的基础架构 数据中心是非常繁忙的,IT部门要同时接受从多个不同的应用系统发来的需求和数据任务并及时响应和处理。另外,IT专业人员的日常工作还需要维护高可用的基础架构和嵌入许多工作流程。 大多数的SDS解决方案都希望数据中心可以“完全投入”,即用SDS解决方案自带的基础架构和流程替换数据中心现有的存储硬件、基础架构和流程。他们通常希望数据中心摒弃共享式集中存储硬件,而支持商业化的超融合架构。 问题二、不能提供全面的数据服务 许多SDS解决方案不能提供完整的数据服务功能性。举个简单的例子,许多SDS解决方案无法将数据复制到远程位置,因此无法创建数据的灾难恢复副本,甚至无法将数据迁移到SDS架构本身。 既然无法实现简单的数据复制,就应该提供...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS6,7,8上安装Nginx,支持https2.0的开启