静态服务:主要提供静态资源,不同用户访问到的资源相同。本博客就是典型的静态服务(Hexo+Next)
动态服务:提供动态服务,不同用户访问到的资源不同,涉及到数据之类的。例如类似halo
服务器软件大盘点!:https://zhuanlan.zhihu.com/p/122252011
服务器软件主要分为以下几类:
- Web服务器:广义上来说,就是响应用户的需求,提供服务,当下所有的服务器软件都可以称之为web服务器软件
- HTTP服务器(静态服务):使用HTTP协议传输资源,提供服务
- 应用服务器(动态服务):一个特定应用的承载容器
常见的轻量级服务器软件:
1.Nginx:典型的静态服务器,可做反向代理、负载均衡,一般放在最前面直面用户,和后端Tomcat打配合;纯C写的,性能贼高、内存消耗极少、稳定性也相当好,互联网公司重度使用。
2.Tengine:阿里出品,基于Nginx服务器做的改造(加强和封装),对大流量场景做了很多高级功能,性能、稳定性优秀。
3.Apache http server:也是静态服务器,但是不如Nginx。
4.IIS:微软开发,不开源,只能用在Windows下,具有应用服务器能力的http服务器。
5.Tomcat:Apache出品,典型的应用服务器软件,符合Servlet标准的应用容器,也可以提供http服务,但一般不会作为http服务器;是Spring Boot框架默认的内置服务器。
6.Jetty:跟Tomcat是一个性质的东西,符合Servlet标准的应用容器,也是Spring Boot框架支持的服务器,但不是默认的。Jetty比Tomcat要轻量一些,配置也更简单一些而已。
7.Undertow:红帽出品,跟Tomcat、Jetty一样也是Spring Boot框架支持的服务器,但不是默认的;在并发量不高的情况下 , Undertow与Tomcat、Jetty的性能区别不大 ,但在高并发时性能优于Tomcat、Jetty。
几款商用重量级的服务器软件:
1.JBoss(从8版开始更名为WildFly):不仅是Servlet应用容器,更是EJB的应用容器,整套JavaEE框架部署的解决方案。
2.WebLogic:Oracle公司出品,用于部署企业级JavaEE应用,全能型,几乎支持JavaEE所有的应用规范。
3.WebSphere:IBM公司出品,支持更多JavaEE的应用规范的综合应用服务器。
对比:
严格意义上Web服务器只负责处理HTTP协议,只能发送静态页面的内容。而JSP,ASP,PHP等动态内容需要通过CGI、FastCGI、ISAPI等接口交给其他程序去处理。这个其他程序就是应用服务器。
比如Web服务器包括Nginx,Apache,IIS等。而应用服务器包括WebLogic,JBoss等。应用服务器一般也支持HTTP协议,因此界限没这么清晰。但是应用服务器的HTTP协议部分仅仅是支持,一般不会做特别优化,所以很少有见Tomcat直接暴露给外面,而是和Nginx、Apache等配合,只让Tomcat处理JSP和Servlet部分