Web 服务器:NGINX
前面讲过的 Httpd 和 Tomcat 以及这个小节所讲的 Nginx 都是 Web 服务器,他们三者发展到今天并没有很明显地成为某个产品一枝独秀的强垄断局面,因为他们有各自的特点和适用的场合,在某些场合他们甚至可以共用达到互补的功能。
1. Nginx 简介
Nginx 是由俄罗斯工程师伊戈尔·赛索耶夫开发的,同样是开源免费的。虽然它和 Httpd 与 Tomcat 都称为 Web 服务器,但是它的功能强大得简直不像是个 Web 服务器,比如它的反向代理和负载均衡,几乎成了现在 Web 应用的必备基础设施。与此同时它的高并发处理能力也是很强大的,是 Httpd 强有力的竞争者。至于实现 Servlet 规范的 Tomcat 倒是替代不了,因为 Nginx 不支持。
三种服务器各自适用场景:
- Nginx:适合静态内容服务和反向代理服务器;它的特点是并发能力强,但是不适合 CPU 密集的请求,因为并发场景的 CPU
上下文的切换花销挺高的。所以很适合当网关做代理来分发请求的场景。 - Httpd:适合Rewrite 场景比较多,对 CPU 资源有一定要求的场景;并发能力相对弱些,可以借助 Nginx
的分发做负载均衡,水平扩展 Httpd 的服务能力。 - Tomcat:Java 应用容器,同样可以借助 Nginx 实现水平服务的扩展;
选择 Nginx 的理由:
-
轻量且并发能力强;
-
反向代理服务器的大规模可扩展事件驱动架构ÿ