Nginx设计精髓

       阅读陶辉老师《深入理解Nginx》一书时,有一个问题一直困扰着我:Nginx这么牛逼,究竟是如何做到的?是用了什么先进的架构?还是什么独门的奇技淫巧?

        带着这个问题读完了这本书。现在,我把我的发现罗列如下(按重要性排序):

1.可介入

        将HTTP请求处理流程分阶段,设计成可介入、可埋点、类似netfilter的设计,为Nginx丰富多样的HTTP功能(反向代理、负载均衡、限速等,令人眼花缭乱)奠定了基础。

2.分阶段、异步处理

        在Nginx核心模块(譬如Nginx HTTP框架)的代码实现上,处处体现着“这次没做完,下次再做”的做事哲学,这也是Nginx高性能的核心秘密。懂行的朋友肯定会说,这不就是业界常说的“异步事件处理机制”嘛!我不赞同用“异步”这个词,因为容易引起读者的困惑。毕竟Nginx使用的epoll是同步的。大部分人所说的“Nginx异步”指的并不是epoll,而是指上层业务处理的异步。需要挑明的一点是,异步事件处理机制并不是Nginx的独创,我所见过的众多开源的或内部使用的WEB框架,无一例外全部都是这种,说明这是标配。

3.subrequest

         独创的subrequest机制,用于分解复杂的业务逻辑。

4.抠门

        随处可见的“抠门”设计。Nginx的抠门是出了名的,比如:不到最后一秒,就是不创建内存。最后这一点,看似琐碎,其实最难做到。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值