加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Web 服务器:Nginx

发布时间:2023-06-09 15:19:24 所属栏目:教程 来源:
导读:Nginx 是由俄罗斯工程师伊戈尔·赛索耶夫开发的,同样是开源免费的。虽然它和 Httpd 与 Tomcat 都称为 Web 服务器,但是它的功能强大得简直不像是个 Web 服务器,比如它的反向代理和负载均衡,几乎成了现在 We
Nginx 是由俄罗斯工程师伊戈尔·赛索耶夫开发的,同样是开源免费的。虽然它和 Httpd 与 Tomcat 都称为 Web 服务器,但是它的功能强大得简直不像是个 Web 服务器,比如它的反向代理和负载均衡,几乎成了现在 Web 应用的必备基础设施。与此同时它的高并发处理能力也是很强大的,是 Httpd 强有力的竞争者。至于实现 Servlet 规范的 Tomcat 倒是替代不了,因为 Nginx 不支持。

三种服务器各自适用场景:

Nginx:适合静态内容服务器和反向代理服务器;它的特点是并发能力强,但是不适合 cpu 密集的请求,因为并发场景的 cpu 上下文的切换花销挺高的。所以很适合当网关做代理来分发请求的场景。

Httpd:适合Rewrite 场景比较多,对 cpu 资源有一定要求的场景;并发能力相对弱些,可以借助 Nginx 的分发做负载均衡,水平扩展 Httpd 的服务能力。

Tomcat:Java 应用容器,同样可以借助 Nginx 实现水平服务的扩展;

选择 Nginx 的理由:

轻量且并发能力强;
反向代理服务器的大规模可扩展事件驱动架构;
多重身份:Web 服务器,可代理七层协议的负载均衡服务器,可作为邮件代理服务器。

Nginx 支持高并发的原理

一般的 Web 服务器在解决并发问题时,通常采用多线程或者多进程来处理请求。这种处理机制在访问量小的时候处理能力确实不错,但是当并发量大了,线程或者进程频繁地切换对资源是一种非常大的损耗。

但是 Nginx 却是单线程的,它采用 事件驱动 + IO 多路复用的处理模型。

单线程可以解决线程切换的损耗和多线程的资源竞争问题;

事件驱动: Nginx 在启动后,master 进程 fork() 多个相互独立的 worker 进程,请求的事件由 work 进程去处理;

IO 多路复用: 一个请求的处理过程并不是独占一个 work 进程,当请求有阻塞等待的时候,work 进程会空出来去处理其它的请求。
 

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章