1/3 什么是Nginx?
Nginx是一个高性能的反向代理服务器(只能处理静态页面)。所谓反向代理服务器,也可以称为消息转发服务器。举个例子,(见上图)
1/4 用户只需要知道反向代理服务器(Nginx)的IP,并向它请求资源;
2/4 反向代理服务器收到请求之后,将请求转发到对应的真正提供服务的Web服务器上;
3/4 这时,Web服务器只需要把资源提交给反向代理服务器;
4/4 最后,由反向代理服务器将资源提交给用户。
2/3 Apache Tomcat是什么?
这里,一般被视为Apache+Tomcat。Apache类似于Nginx功能,也可以做反向代理服务器,但也可以处理动态页面。Tomcat可以脱离于Apache单独运行,但更重要的是作为Apache的扩展,用来增强Apache处理动态页面的功能(具体来说就是将Jsp翻译为Servlet)。
3/3 小结
Apache很有年头了,Nginx是后起之秀。以下是简单比较,
其一,如果只需要静态消息的转发,毫无疑问Nginx是最佳的选择。它不仅具有很高的稳定性,更以其性能著称——官方表示其可以保持10,000个没有活动的连接,远大于Apache的1,000个以下,并且不惧DDoS攻击。
其二,如果需要处理动态页面,那么Apache Tomcat将是不错的选择。
其三,Nginx适合I/O密集型,可以处理高并发。Apache适合CPU密集型,可以快速处理请求。