Nginx/Tomcat/Apache的优缺点和区别

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 分发到客户端。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!