Apache HTTP Server、Nginx 和 Tomcat 的主要特点和区别
此处的apache指的是Apache软件基金会下的一个项目——Apache HTTP Server Project
tomcat是用来跑servler的容器,nginx是通用http server
Apache HTTP Server和Nginx本身不支持生成动态页面,
但它们可以通过其他模块来支持(例如通过Shell、PHP、Python脚本程序来动态生成内容)。
若想要使用Java程序动态生成资源内容,使用这一类HTTP服务器很难做到。
Java Servlet以及衍生的JSP可以让Java程序也具有处理HTTP请求并且返回内容(由程序动态控制)的能力,Tomcat正是支持运行Servlet/JSP应用程序的容器(Container)
————————————————
特点/功能 | Apache HTTP Server | Nginx | Tomcat |
---|---|---|---|
类型 | Web 服务器 | Web 服务器 | Servlet 容器/应用服务器 |
开发组织 | Apache 软件基金会 | Nginx 公司 | Apache 软件基金会 |
使用语言 | C | C | Java |
静态内容处理 | 优秀 | 优秀 | 较差 |
动态内容处理 | 支持,使用模块扩展 | 有限支持,可通过模块扩展 | 主要用于动态内容 |
配置简易性 | 相对较复杂 | 相对简单 | 中等 |
并发连接处理 | 较慢 | 高效 | 中等 |
资源消耗 | 较高 | 低 | 中等 |
负载均衡 | 可通过模块实现 | 原生支持 | 需要额外配置 |
反向代理 | 支持 | 优秀 | 不适用 |
虚拟主机支持 | 优秀 | 优秀 | 无 |
SSL/TLS 支持 | 支持 | 支持 | 支持 |
进程/线程模型 | 多进程/多线程 | 多进程/事件驱动 | 多线程 |
主要用途 | 静态和动态网站托管 | 静态和动态网站托管 | Java Web 应用托管 |
别人的举例
nginx是插板,tomcat是插头,你可以通过tomcat插头直接插电启动java,也可以通过nginx插板转一下再启动。你单一个java可以不要nginx,但你要是想启动很多java的话,用nginx插板会更方便管理且架构清晰。(只是举例,实际肯定会有所出入的)
![](https://img.haomeiwen.com/i28791467/fdc2fa2d3ff31ee1.png)
网友评论