一文看懂Tomcat、Nginx和Apache的区别
-
这三者都是web server,各自有什么特点? -
他们之间的区别是什么? -
nginx 和 tomcat性能上有何异同? -
tomcat用在Java后台程序,难道不能用apache和nginx?
强大的Java类库也实现了简单的HTTP服务器供开发者使用:
-
HttpServer (Java HTTP Server )
静态资源
。
Tomcat运行在JVM之上,和HTTP服务器一样,绑定IP地址并监听TCP端口,而且:
-
管理Servlet程序的生命周期 -
将URL映射到指定Servlet进行处理 -
与Servlet程序合作处理HTTP请求
根据HTTP请求生成HttpServletRequest对象并传递给Servlet进行处理,将Servlet中的HttpServletResponse对象生成的内容返回给浏览器
动静态资源分离
使用Nginx的反向代理分发请求:所有动态资源的请求交给Tomcat,静态资源的请求(例如图片、CSS、JS文件等)直接由Nginx返回给浏览器
负载均衡
当业务压力增大时,可能一个Tomcat的实例不足以处理,可启动多个Tomcat实例进行水平扩展,Nginx负责负载均衡,将请求分发到各个不同的实例进行处理