前言
根据 Netcraft 公布的最新的(2019年10月)Web 服务器调查报告,Nginx 的市场份额达到了 32.69%,毫无争议地成为了最流行的 Web 服务器。这主要得益于 Nginx 在性能、稳定性和可扩展等方面优异的表现。
Nginx 以高性能著称,为什么 Nginx 的性能这么高呢?要回答这个问题,得先从 Nginx 的进程模型说起。Nginx 是多进程的,简单来说,Nginx 包含两种进程:Master 和 Worker 。Master 进程是管理进程,负责控制和监控 Worker 进程:接收命令,切割日志文件,停止、重新启动 Worker 进程;监控 Worker 进程,如果发现 Worker 进程异常退出,就重新启动(respawn)一个新的 Worker 进程。Worker 进程是工作进程,负责处理客户端请求。Worker 进程可以有多个,Worker 进程之间是独立且对等的,分别竞争(epoll_wait)处理请求(这种竞争有可能发生惊群效应)。Nginx 使用了 I/O 多路复用技术,也就是说,一个 Worker 也可以同时处理成千上万个请求。
官方测试,Nginx 单机使用 8 个核可以支撑起百万并发。于是你兴致勃勃地安装了 Nginx,测试一看 Nginx 的 RPS 最高到十几万,再增加核心就没啥作用了,增加的多了反而下降了。
说好的百万并发呢?当然首先要说明的是: 十几万 RPS 已经很高了,要是我的产品能达到十几万 RPS,做梦都能笑醒了。但是追求极致性能是每一个有梦想的开发者的自我修养!万一有一天用到了呢!
那么,Nginx 单机性能如何才能突破十几万呢?答案是,需要调优,从多个角度对 Nginx 进行调优,比如缓存、CPU 亲和性、事件处理模型、IO 操作等等。如果你对高性能服务器开发感兴趣,你会发现这些调优的方法正好是高性能服务器开发的关键原则!
Nginx的作用是什么?
(1)Nginx 是一个很强大的高性能Web服务器,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,能够支持高达 50,000 个并