0x00 前言
谈及Apache与Nginx的区别,网上许多资料都会说: "Nginx用来处理静态页面,Apache用来处理动态页面。"这样的说法很容易让人们产生误解。其实Apache和Nginx本身都是不能处理动态页面的,和nginx一样,apache是将动态页面交由php或tomcat等其他服务程序去处理,再由php或tomcat等其他服务程序将处理后的静态页面返回给apache,最后apache再将静态内容呈现给客户。
那么为什么会有"Nginx用来处理静态页面,Apache用来处理动态页面。"这样的说法呢?其实这句话想要表达的意思是apache和php的结合效果更好一些。但时过境迁,如今孰优孰劣当具体情况具体分析。
0x01 Apache、Nginx、Tomcat 简介
Apache
Apache HTTP Server(简称Apache)是Apache软件基金会的一款开放源码的web服务器软件,可以在大多数计算机操作系统中运行,是目前最流行的web服务器端软件之一。apache支持的模块众多,性能稳定,本身只支持静态解析,但可以通过扩展脚本、模块等支持动态页面。常见的网站架构有:apache+php、apache+tomcat等。
Nginx
Nginx是一款开源的轻量级的web服务器/反向代理服务器软件,其特点是占用内存少,并发能力强,也是目前比较流行的web服务器软件之一。静态页面处理能力较强,尤其是反向代理服务表现突出,常被用作负载均衡和代理服务器使用。常见的网站架构有:nginx+php、nginx+tomcat、nginx+apache+php等。
Tomcat
Tomcat是一款开源的Java web应用服务器软件,常被称之为servlet容器,用来处理jsp页面和运行servlet。tomcat技术先进、性能稳定、而且免费,因而深受Java爱好者的喜爱并得到了广泛使用。tomcat静态页面处理能力较弱,它的强项是运行Jave Servlet(用Java编写的服务器端程序)。
0x02 传送门
相关知识推荐以下文章,建议顺序阅读。
web服务器、Web中间件和Web容器的区别_谢公子的博客-CSDN博客_web中间件
详谈Apache、Nginx和tomcat的区别以及处理静态页面和动态页面的方式_风中流浪的技术博客_51CTO博客
总结:Apache/Tomcat/JBOSS/Jetty/Nginx/WebLogic/WebSphere之间的区别区别_呼吸的小鱼博客-CSDN博客_weblogic和nginx