nginx架构概述

处理并发连接的传统基于进程或线程的模型涉及使用单独的进程或线程处理每个连接,以及阻止网络或输入/输出操作。根据应用程序的不同,内存和CPU消耗可能非常低效。产生单独的进程或线程需要准备新的运行时环境,包括分配堆和堆栈内存,以及创建新的执行上下文。创建这些项目也会花费额外的CPU时间,由于过多的上下文切换导致线程抖动,最终会导致性能下降。所有这些复杂性都表现在像Apache这样的老式Web服务器架构中。这是在提供丰富的一般适用功能和优化服务器资源使用之间的权衡。
在这里插入图片描述
从一开始,nginx就是一种专业工具,可以实现更高的性能,密度和经济地使用服务器资源,同时实现网站的动态增长,因此它遵循不同的模式。实际上,它受到各种操作系统中基于事件的高级机制的持续开发的启发。结果是模块化,事件驱动,异步,单线程,非阻塞架构,它成为nginx代码的基础。

nginx大量使用多路复用和事件通知,并将特定任务专用于单独的进程。连接在一个名为workers 的有限数量的单线程进程中以高效的运行循环进行处理。在每个workernginx中,每秒可以处理数千个并发连接和请求。

猜你喜欢

转载自blog.csdn.net/qq_30683393/article/details/89609600