服务器类型科普
服务器科普一、服务器软件与服务器硬件服务器硬件:一台性能、稳定性、扩展性比普通PC更强的一台电脑,也需要搭载操作系统。比如windows server,linux发行版等。服务器软件:通常来讲,只要运行在服务器操作系统之上,绑定了服务器特定的IP地址,并且在某一个端口监听用户的请求,提供服务的软件,都可以叫它服务器软件。二、静态服务和动态服务的区别以个人博客举例:静态博客:Hexo,Hugo动态博
一、服务器软件与服务器硬件
服务器硬件:一台性能、稳定性、扩展性比普通PC更强的一台电脑,也需要搭载操作系统。比如windows server,linux发行版等。
服务器软件:通常来讲,只要运行在服务器操作系统之上,绑定了服务器特定的IP地址,并且在某一个端口监听用户的请求,提供服务的软件,都可以叫它服务器软件。
二、静态服务和动态服务的区别
以个人博客举例:
静态博客:Hexo,Hugo
动态博客:WordPress,Halo
静态服务:一般返回静态资源。不同用户,无论何时,只要访问同一个服务,拿到的内容都是一模一样的。
动态服务:一般返回动态资源。用户登录一个网站的后台,会根据用户不同的身份和权限信息返回不同的内容和资源,所以看到的内容和页面不一定一样。
三、服务器的种类
三种服务器:Web服务器,HTTP服务器,应用服务器
1、Web服务器:提供Web化服务,网站的页面服务,邮件服务,网络的下载服务,广义来说就是响应用户的需求,然后提供服务,当下几乎所有的服务器都可以称之为Web服务器。
2、HTTP服务器:由于当今Web服务器应用层通讯协议主要就是HTTP协议,基本上可以将HTTP服务器理解为和Web服务器对等。HTTP服务器只是把服务器上的资源通过HTTP协议形式传输给客户端,侧重于对于静态资源传输的支持,所以一般也称之为“静态服务器”。
3、应用服务器:可以理解为一个特定应用的承载容器,一般来说,它需要有运行时环境的支持,比如Java领域,比较常见的应用服务器Tomcat(它必须要Java的运行环境的支持),一般也称之为“动态服务器”,“动态容器”,“应用容器”,支持动态响应。比如,可以根据不同用户的请求,能够动态地生成资源并且返回。这样一来,在客户端不同用户拿到的返回内容也不一样。一般来说,在流量场景不大的情况下,应用服务器也可以拿来做HTTP服务器使用,只不过很少这么做。
四、常见服务器
1、Nginx:一个典型的HTTP服务器,本职工作就是将服务端的静态内容或资源,通过HTTP协议的形式传输给客户端。Nginx常用的功能还有作为反向代理服务器,负载均衡服务器来使用。在实际开发中,Nginx一般是与后面真正的动态应用服务器打配合,比如Tomcat,把用户请求收到之后,转发给后面真正的Tomcat应用服务器,从而提供灵活稳定的Web服务。Nginx服务器的性能特别好,稳定性也很高,能够扛得住冲击,所以一般把它放到最前面去直面用户的请求。Nginx服务器本身也可以在诸如Lua脚本等辅助下做二次开发,可以变成一个提供动态服务的应用服务器,比如大名鼎鼎的OpenResty,代码是开源的。Nginx是C语言写的服务器,代码也是开源的,性能和稳定性极高,内存消耗极少,目前市面上大量的互联网公司在都在使用Nginx。
2、Tengine:阿里的项目,最先是由淘宝发起的。Tengine是基于Nginx服务器做的改造,可以看作是在Nginx的基础上又做了封装和加强。主要是针对大流量网站的场景添加了很多的高级功能和特性。性能和稳定性都得到了很好的实际检验,非常优秀,本质上和Nginx是一个性质的东西。
3、Apache:Apache HTTP Server,Apache基金会旗下的一个HTTP服务器项目。Apache服务器从功能上来说和Nginx服务器也是对等的,也是作为HTTP静态服务器居多,但是在并发性,负载性以及资源消耗方面性能比不上Nginx。
4、IIS:IIS是微软阵营的Web服务器,只能运行于Windows系统下,而且并不是开源的。IIS也是一个HTTP静态服务器,但它也支持ASP.NET这种类似环境的应用,因此也可以作为一个应用服务器来用。IIS可以定位为一个具有应用服务器能力的HTTP服务器,但目前很少人用。
5、Tomcat:Apache基金会旗下的一个Java应用服务器软件,它需要Java运行时环境的支持。当前Spring Boot就将Tomcat作为内嵌的默认的应用服务器,或者叫默认应用容器。Tomcat是一个支持Servlet标准的Java EE应用容器,所以主要用途就是作为Java EE应用服务器,虽然Tomcat是一个动态应用服务器,但是在流量不大的情况下,也可以直接做HTTP服务器来使用,但一般不会这么去用,不会让Tomcat去直面用户的请求。而是一般会和Nginx服务器进行配合,Nginx服务器在前面负责接收用户的请求,然后转发到后面的Tomcat服务器里面去处理。
6、Jettty:Jetty也是Spring Boot框架支持的内嵌应用容器之一,但不是默认的(默认是Tomcat)。所以Jetty和Tomcat是一个性质的东西。按照Jetty官网来说,Jetty是一个开源的HTTP服务器+应用容器,因此既可以提供静态服务,也可以提供动态服务。而且提供了对HTTP/2,WebSocket以及JMX等其它集成的这种支持。Jetty和Tomcat相比,功能几乎是一致的,都是做动态应用容器较多,都符合Servlet标准,只是Jetty要比Tomcat更轻量一点,配置上也会更简单一些。
7、Undertow:Undertow也是Spring Boot框架支持的内嵌应用容器之一,也不是默认的(默认的还是Tomcat)。Undertow是RedHat开源的一款基于Java语言编写的应用服务器,也是Wildfly应用服务器的默认的Web容器,也符合Servlet规范,支持HTTP/2,支持WebSocket,也是一款灵活的高性能的Web应用服务器,在并发量不高的情况下与Tomcat和Jetty的区别并不大,但是在并发量稍微高一点的情况下,Undertow的性能要优于Tomcat和Jetty。
不管是Undertow,Tomcat还是Jetty,皆为偏轻量级的应用服务器,并且也都是开源免费的。下面几款是偏重量级的服务器软件,很多都是商用软件,它们的功能会更加综合,体量也会更大。虽然主要用途也是作为应用服务器,或者说应用容器,但它们更多是一种平台级别的软件。
8、JBoss和WildFly:JBoss也是一个JavaEE应用服务器,可以部署动态应用,但它不仅仅是所谓的Servlet应用容器,而且是EJB的应用容器,JBoss在早年是一款非常火的动态应用服务器软件,在早年的EJB时代发挥了巨大的作用。更广泛意义上的JBoss不仅仅是一个Java应用服务器,而且是一整套JavaEE全套解决方案,所以也算是一个比较重量级的应用服务平台.JBoss AS从版本8开始更名为WildFly了。所以现在取而代之的WildFly也是一款企业级的应用服务器,由RedHat公司开发维护。WildFly应用服务器种的默认Web容器就是Undertow。
9、WebLogic:Oracle公司出品的,用于部署企业级Java应用的一个应用服务器,是一个全能型的重量级的应用服务器软件,支持JavaEE几乎所有的应用规范,包括EJB,Servlet,JMS等等。WebLogic毕竟是一个商业软件,有着强大的商业化和周边组件的支持。
10、WebSphere:WebSphere是IBM公司出品的JavaEE应用服务器软件,功能非常强大,而且有着IBM的开发工具相配套,同时它也是一个价格不菲的商业服务器软件。和WebLogic一样,WebSphere也是一个支持更多JavaEE标准和规范的综合应用服务器,可靠性高,体量也会更大,性能更好,功能也会更全,同时使用成本也会高很多。
这些重量级的商用服务器软件更多是一种平台化的软件,所以体量非常大。
更多推荐
所有评论(0)