Chinaunix首页 | 论坛 | 博客
  • 博客访问: 604259
  • 博文数量: 298
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3077
  • 用 户 组: 普通用户
  • 注册时间: 2019-06-17 10:57
文章分类

全部博文(298)

文章存档

2022年(96)

2021年(201)

2019年(1)

我的朋友

分类: Java

2021-08-26 12:15:55

nginx/tomcat/apache的区别
Apache
Apache是一个模块化的服务器,可以运行在几乎所有的计算机平台上,属于应用服务器

缺点
配置相对复杂,而且不使用脚本,模块就无法支持动态页面

优点
支持模块多,性能稳定,由于本身是静态解析,所以适合处理静态文件(HTML,图片等),也可以通过扩展脚本,模块等支持动态页面

Tomcat
Tomcat是应用服务器,并且只是一个Servlet容器

缺点
基本上只能做java服务器

优点
处理动态请求,是编译Servlet的容器

Nginx
Nginx是一款HTTP和代理服务器,Nginx常用作静态内容服务和代理服务器,将外来请求转发给应用服务(tomcat,django)。

缺点
只适合静态和反向代理

优点
负载均衡,反向代理,动静分离,静态请求可以直接通过Nginx处理,而且处理效率比Apache高,动态请求才需要通过转发到Tomcat处理

总结
Apache/Nginx应该叫做Http Server
而tomcat则是一个APPlication Server,(java项目 fhadmin.cn)准确来说应该是Servlet/JSP应用的容器。
HttpServer

一个HttpServer关心的是HTTP协议层面的传输和访问控制,所以在
Apache/Nginx上可以看到代理,负载均衡等,客户端通过HTTP Server访问服务器上存储的资源(HTML文件,图片文件等等)

应用服务器

就是执行应用的容器,首先需要支持开发语言的Runtime(对于Tomcat来说,就是Java)。其次需要支持应用相关的规范,例如类库,安全方面的特性。对于tomcat来说就是需要提供JSP/Sevlet运行需要的标准类库等。
为了方便,应用服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强大,所以应用服务器往往是运行在 HTTP Server 的背后,执行应用,将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。


阅读(855) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~