web服务器设计中的关键约束
性能
网络性能单次请求的延迟性网络效率可伸缩性简单性可修改性可见性可移植性可靠性nginx 的架构设计
模块化设计
高度模块化设计时nginx 的架构基础。除了少量的核心代码,其他一切皆为模块。
特点:
高度抽象的模块接口模块接口非常简单,具有很高的灵活性配置模块的设计核心模块接口的简单化多层次、多类别的模块设计事件驱动架构
由一些事件发生源来产生事件,由一个或者多个事件收集器来收集、分发事件,然后许多事件处理器会注册自己感兴趣的事件,同时会“消费”这些事件。
请求的多阶段异步处理
请求的多阶段异步处理 只能 基于 事件驱动架构实现。
把一个请求的处理过程按照事件的触发方式分为多个阶段,每个阶段都可以由事件收集、分发器来触发。
管理进程、多工作进程设计
nginx 采用一个master管理进程、多个worker工作进程的设计方式。
这种设计的优点:
利用多核系统的并发处理能力负载均衡管理进程会负责监控工作进程的状态,并负责管理其行为平台无关的代码实现
c语言实现,尽量减少使用与操作系统平台相关的代码。
nginx重新封装了日志、各种基础数据结构、常用算法等工具软件。
核心代码使用与操作系统无关的代码实现,与操作系统相关的系统调用则非别针对各个操作系统有独立的实现。
内存池的设计
把多次向系统申请内存的操作整合成一次,大大减少了cpu资源的消耗,同时减少了内存碎片。
使用 统一管道过滤器模式的http过滤模块
其他一些用户模块
nginx 框架中的核心结构体 ngx_cycle_t
').addclass('pre-numbering').hide(); $(this).addclass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadein(1700); }); }); 以上就介绍了nginx 基础架构,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。