nginx和tomcat的区别
nginx和apache区别web上的server都叫web server,但是⼤家分⼯也有不同的。
nginx常⽤做静态内容服务和代理服务器(不是你FQ那个代理),直⾯外来请求转发给后⾯的应⽤服务(tomcat,django什么的),tomcat 更多⽤来做做⼀个应⽤容器,让java web app跑在⾥⾯的东西,对应同级别的有jboss,jetty等东西。
但是事⽆绝对,nginx也可以通过模块开发来提供应⽤功能,tomcat也可以直接提供http服务,通常⽤在内⽹和不需要流控等⼩型服务的场景。
apache⽤的越来越少了,⼤体上和nginx功能重合的更多。
严格的来说,Apache/Nginx 应该叫做「HTTP Server」;⽽ Tomcat 则是⼀个「Application Server」,或者更准确的来说,是⼀个「Servlet/JSP」应⽤的容器(Ruby/Python 等其他语⾔开发的应⽤也⽆法直接运⾏在 Tomcat 上)。
⼀个 HTTP Server 关⼼的是 HTTP 协议层⾯的传输和访问控制,所以在 Apache/Nginx 上你可以看到代理、负载均衡等功能。客户端通过HTTP Server 访问服务器上存储的资源(HTML ⽂件、图⽚⽂件等等)。通过 CGI 技术,也可以将处理过的内容通过 HTTP Server 分发,但是⼀个 HTTP Server 始终只
是把服务器上的⽂件如实的通过 HTTP 协议传输给客户端。
⽽应⽤服务器,则是⼀个应⽤执⾏的容器。它⾸先需要⽀持开发语⾔的 Runtime(对于 Tomcat 来说,就是 Java),保证应⽤能够在应⽤服务器上正常运⾏。其次,需要⽀持应⽤相关的规范,例如类库、安全⽅⾯的特性。对于 Tomcat 来说,就是需要提供 JSP/Sevlet 运⾏需要的标准类库、Interface 等。为了⽅便,应⽤服务器往往也会集成 HTTP Server 的功能,但是不如专业的 HTTP Server 那么强⼤,所以应⽤服务器往往是运⾏在 HTTP Server 的背后,执⾏应⽤,将动态的内容转化为静态的内容之后,通过 HTTP Server 分发到客户端。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论