Nginx 的优点
1. 更快
更快表现在两个方面:
- 在正常情况下,单词请求可以得到更快的响应
- 在高峰期(如有数以万计的并发请求),Nginx 可以比其它 Web 服务器得到更快响应请求。
2. 高扩展性
Nginx 的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。
3. 高可靠性
Nginx 的高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性。
另外,官方提供的模块都非常稳定,每个 worker 进程相互独立, master 在 workder 进程出错时可以快速 “拉起” 新的 worker 子进程提供服务。
4. 低内存消耗
一般情况下, 10000 个非活跃的 HTTP Keep-Alive 连接在 Nginx 中仅消耗 2.5MB 的内存。
5. 单机支持 10 万以上的并发连接
理论上,Nginx 支持的并发连接上限取决于内存,10 万远未封顶。
6. 热部署
master 管理进程与 worker 工作进程分离设计,使得 Nginx 能够提供热部署功能,即可以在 7 x 24 小时不间断服务的前提下,升级 Nginx 的可执行文件。当然,它也支持不停止服务就更新配置项、更换日志文件等功能
Nginx 高性能的原因
Nginx 先天的事件驱动型设计(select、poll、epoll,Nginx 一般使用 epoll)
全异步的网络 I/O 处理机制
极少的进程间切换(主要是在分配 worker 进程数量的时候,一般会把 worker 进程的数量分配为 CPU 核心的数量)
许多优化设计
参考资料
[1]. 陶辉. 深入理解 Nginx 模块开发与架构解析 [M]. 机械工业出版社, 2018