一、简介
NOTE:Nginx 通过异步非阻塞的事件处理机制实现高并发。Apache 每个请求独占一个线程,非常消耗系统资源。
NOTE:事件驱动适合于IO密集型服务(Nginx),多进程或线程适合于CPU密集型服务(Apache),所以Nginx适合做反向代理,而非web服务器使用。
Nginx基本架构模型
NOTE: 接口设计, 所有的模块都遵循着同样的ngx_module_t接口设计规范
image.png
Nginx核心进程模型
NOTE: Nginx适合处理IO密集型服务,作为反向代理服务器,更多的是请求调度。
进程模型
二、Nginx与Apache对于高并发处理上的区别
Apache
对于Apache,每个请求都会独占一个工作线程,当并发数到达几千时,就同时有几千的线程在处理请求了。这对于操作系统来说,占用的内存非常大,线程的上下文切换带来的cpu开销也很大,性能就难以上去,同时这些开销是完全没有意义的。
Nginx
对于Nginx来讲,一个进程只有一个主线程,通过异步非阻塞的事件处理机制,实现了循环处理多个准备好的事件,从而实现轻量级和高并发。

image.png
进程模型







网友评论