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 进程会空出来去处理其它的请求。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
