Nginx为什么快,为什么好用

相信大家平时用的最多的地方应该是做反向代理。不过人家可是不止这些东西。Nginx 是以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。以下是nginx的http连接和处理过程。
在这里插入图片描述
HTTP 连接建立和请求处理过程如下:
1.Nginx 启动时,Master 进程,加载配置文件。
2.Master 进程,初始化监听的 Socket。
3.Master 进程,Fork 出多个 Worker 进程。
4.Worker 进程,竞争新的连接,获胜方通过三次握手,建立 Socket 连接,并处理请求。

Nginx 服务器,正常运行过程中:
多进程: 一个 Master 进程、多个 Worker 进程。
Master 进程: 管理 Worker 进程。对外接口:接收外部的操作(信号);对内转发:根据外部的操作的不同,通过信号管理 Worker;监控: 监控 Worker 进程的运行状态,Worker 进程异常终止后,自动重启 Worker 进程。
Worker 进程: 所有 Worker 进程都是平等的。实际处理:网络请求,由 Worker 进程处理。Worker 进程数量:在 nginx.conf 中配置,一般设置为核心数,充分利用 CPU 资源,同时,避免进程数量过多,避免进程竞争 CPU 资源,增加上下文切换的损耗。
nginx是个web服务器,基本上也是典型的web服务器工作模式。
在这里插入图片描述
Nginx 的模块一般来说包括5个,分别是event module,phase handler,output filter,upstream,load-balancer,不过平时能接触到的最多的当属后面2个,
upstream: upstream 模块实现反向代理的功能,将真正的请求转发到后端服务器上,并从后端服务器上读取响应,发回客户端。
upstream 模块是一种特殊的 handler,只不过响应内容不是真正由自己产生的,而是从后端服务器上读取的。
load-balancer: 负载均衡模块,实现特定的算法,在众多的后端服务器中,选择一个服务器出来作为某个请求的转发服务器。
为什么高性能,高并发?原因如下:
Nginx 采用多进程 + 异步非阻塞方式(IO 多路复用 Epoll)。

IO 多路复用: 一个线程,跟踪多个 Socket 状态,哪个就绪,就读写哪个。优势如下:
IO 多路复用:单个连接的请求处理速度没有优势。
大并发量:只使用一个线程,处理大量的并发请求,降低上下文环境切换损耗,也不需要考虑并发问题,相对可以处理更多的请求。
消耗更少的系统资源(不需要线程调度开销)。

展开阅读全文

Nginx高阶技能

05-28
内容简介: 本课程以通俗易懂的方式讲解Nginx技术,课程内容包括: 1.Nginx简介、安装Nginx  2. 配置服务器  3.反向代理  4.负载均衡  5.动静分离 为什么需要NginxNginx轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apache 则是阻塞型的。在高并发下 nginx 能保持低资源低消耗高性能 ,而 apache 在 PHP 处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。nginx 处理静态文件好,静态处理性能比 apache 高三倍以上。nginx 的设计高度模块化,编写模块相对简单。 nginx 配置简洁,正则配置让很多事情变得简单,而且改完配置能使用 -t 测试配置有没有问题,apache 配置复杂 ,重启的时候发现配置出错了,会很崩溃。 nginx 作为负载均衡服务器,支持 7 层负载均衡。 nginx 本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器启动特别容易, 并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级。 社区活跃,各种高性能模块出品迅速。 课程大纲: 为了让大家速系统了解Nginx知识全貌,我为你总结了「Nginx技术框架图」,帮你梳理学习重点,建议收藏!!
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值