Q&A – Nginx与汤姆cat的差异?

web上的server都叫web server,不过我们分工也有区别的。

Java,nginx常用做静态内容服务和代理服务器(不是您FQ那些代理),直面外来请求转载给前面包车型地铁应用服务(tomcat,django什么的),tomcat愈来愈多用来做做贰个利用容器,让java
web app跑在中间的事物,对应同级其余有jboss,jetty等东西。

可是事无相对,nginx也足以因此模块开辟来提供使用作用,tomcat也能够一向提供http服务,平常用在内网和不必要流控等小型服务的气象。

apache用的更加少了,大要上和nginx作用重合的更多。

 

严加的来讲,Apache/Nginx 应该称为「HTTP Server」;而 汤姆cat
则是3个「Application
Server」,可能更可信的来讲,是三个「Servlet/JSP」应用的容器(Ruby/Python
等其他语言开拓的利用也无能为力直接运转在 汤姆cat 上)。

二个 HTTP Server 关怀的是 HTTP 协议层面包车型大巴传导和访问调整,所以在
Apache/Nginx 上你能够看到代理、负载均衡等效果。客户端通过 HTTP Server
访问服务器上囤积的能源(HTML 文件、图片文件等等)。通过 CGI
技艺,也足以将拍卖过的始末通过 HTTP Server 分发,但是二个 HTTP Server
始终只是把服务器上的文件属实的通过 HTTP 协议传输给客户端。

而应用服务器,则是2个应用实践的器皿。它首先须求协助开辟语言的
Runtime(对于 汤姆cat 来讲,正是Java),保险应用能够在应用服务器上平常运维。其次,须要支持选用相关的正统,例如类库、安全方面包车型客车特点。对于
汤姆cat 来说,便是索要提供 JSP/Sevlet 运维须要的专业类库、Interface
等。为了便利,应用服务器往往也会集成 HTTP Server 的功用,然则比不上专业的
HTTP Server 那么强劲,所以应用服务器往往是运维在 HTTP Server
的专擅,施行应用,将动态的始末转化为静态的内容之后,通过 HTTP Server
分发到客户端。

相关文章