服务器软件大盘点!

Profile

服务器到底是什么?

服务器的硬件好理解,其实就是一台性能稳定性扩展性等等比我们普通个人PC强的一台机器而已,它也需要搭载操作系统,比如有专门的Windows Server或者各种Linux发行版系统。只不过咱这里很多小伙伴可能还是处于学习阶段,没见过企业里面真实的服务器机房,觉得好奇而已。

image

而一直以来,通过和小伙伴们私信交流发现,很多初学者疑惑的主要可能还是服务器软件层面的东西。类似一些诸如:Web服务器HTTP服务器应用服务器TomcatApacheNginx……等等的概念。

通常来讲,只要运行在服务器系统之上,绑定了服务器IP地址并且在某一个端口监听用户请求并提供服务的软件都可以叫服务器软件。


静态服务 VS 动态服务

在开始下文之前,首先必须搞清楚:静态服务动态服务这两个基本概念。

还记得在我之前的 「个人博客搭建系列视频」里,我曾演示过多种博客框架的搭建,比如:HexoHugoWordPressHalo等等。像Hexo这种属于静态博客,而HaloWordPress这种则是动态博客。

  • 静态服务一般返回的是静态资源,不同用户无论何时,只要访问同一个服务拿到的内容都是一毛一样的。比如不同用户去访问我的个人博客页面,浏览器上看到的内容都一样,因为我的博客是静态博客,因此提供的也就是静态服务。
  • 而动态服务一般返回的是动态资源,比如用户登录一个网站后台,比如就B站吧,肯定会根据不同的用户身份权限信息返回给用户不同的内容和资源,所以不同人看到的东西也不一样,这种就可以理解为动态服务。

所以,在我之前演示过的 「个人博客搭建系列视频」 里,像HexoHugoVuePress这种框架搭建的博客全部都属于静态博客,毕竟它们都是生成了固定HTML页面,然后托管起来,不论谁去访问看到的东西都一样;而像WordPressHalo这些有着后台应用服务的博客则属于动态博客,它们需要应用服务器的承载,部署起来也会更加复杂。


几个基本概念

在这里,首先搞懂三个基本概念:

  • Web服务器
  • HTTP服务器
  • 应用服务器

1、Web服务器

我觉得这个概念是最广的!

顾名思义,Web的功能就是提供Web化服务。那什么又叫Web服务呢,简单点理解比如:网站页面服务、邮件服务、网络下载服务等等,都可以称作Web化服务。

总而言之,Web服务器从广义上来说,就是响应用户的需求并提供响应和服务。所以从这个角度来讲,当下几乎所有服务器软件都可以称之为Web服务器。

2、HTTP服务器

由于当今Web服务器应用层通信协议主要就是HTTP协议,所以我们 “基本”上可以将HTTP服务器理解为和Web服务器对等,因此在下文的阐述时这两个概念不会作过多的纠结区分。

HTTP服务器只是把服务器上的资源通过HTTP协议传输给了客户端,所以这地方我们 侧重于 它对于静态资源传输的支持。因此一般也理解为静态服务器

当然它的功能一般不止这些,实际企业里也常做反向代理负载均衡等用途。

3、应用服务器

应用服务器,则可以理解为一个特定应用的承载容器。一般来说它需要有运行时环境的支持。比如在Java领域比较常用的应用服务器Tomcat,它就必须要Java运行时环境的支持。

因此,应用服务器也常常被称为:动态服务器动态容器应用容器Web容器等等,这些概念基本都是对等的。

既然属于动态服务器,很明显它就能支持动态响应,比如可以根据不同用户的请求,能够动态的生成资源并返回。这样一来,在客户端,不同用户拿到的返回内容也不一样,不像静态服务器,大家拿到的资源都一样。

当然一般来说,在流量不大的场景下,应用服务器肯定也是可以做HTTP服务器来用,只不过很少有这么去干的。

所以接下来我们就以目前市场上常用的服务器软件为例,逐个对号入座,来审视一遍,大致有十几款软件。


Nginx

image

Nginx是一个典型的HTTP服务器。它原本的本职工作就是将服务端的某一个静态内容或资源通过HTTP协议传到客户端,所以也就是典型的静态服务器。

当然Nginx服务器的功能远不止这些,现在常用的功能还包括做反向代理、负载均衡。

现实应用部署场景中,Nginx一般是与后面真正的动态应用服务器打配合,比如Tomcat,把用户请求转发给后面的应用服务器,从而提供灵活稳定的Web服务。因为Nginx服务器性能好稳定性也高,能扛得住冲击,把它放在前面去直面用户。

image

当然,Nginx服务器本身也可以在诸如Lua等脚本的辅助下做二次开发,可以变成一个提供动态服务的应用服务器,这也就是大名鼎鼎的OpenResty

image

Nginx这玩意是纯C语言写的,代码也是开源的,官网就能够下载得到。性能贼高,而且内存消耗贼少,稳定性也是一等的好,所以你看市面上大量的互联网公司在重度使用它。


Tengine

image

Tengine其实是基于Nginx服务器做的改造,可以看做是在Nginx的基础上又做了加强封装,主要就是针对大流量网站的需求,添加了很多高级功能和特性。

image

Tengine它是淘宝发起的Web服务器项目。它的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

所以Tengine它和Nginx哥俩是一个性质的东西。


Apache

image

当然这个地方的Apache服务器具体指的就是:Apache HTTP Server,它是Apache软件组织旗下的一个HTTP服务器项目。

Apache从功能上来说和Nginx服务器对等,也是做静态HTTP服务器,只不过在并发、负载和资源消耗等方面的性能都比不上Nginx,所以现在选用Nginx的更多。


IIS

IIS是微软阵营的Web服务器,只能运行于Windows系统下,而且并不是开源的。

[图片上传失败...(image-c78832-1585711220439)]

IIS的主要身份还是一个HTTP服务器,但由于它也支持比如ASP.NET这种类似环境(毕竟都是微软自家的东西),因此也可以兼做应用服务器,所以它可以定位为一个具有应用服务器能力的HTTP服务器。


Tomcat

Tomcat和上面所述的Apache HTTP Server一样,虽然都是隶属于Apache软件组织旗下的子项目。

但Tomcat它却是一个典型的应用服务器软件,或者说是Web容器动态容器应用容器,提供的是动态服务,而且它需要Java运行环境的支持。所以它和像上面讲过的NginxTengineApache 不是一个性质的服务器软件。

image

众所周知,现在大名鼎鼎的Spring Boot框架就将Tomcat作为内嵌的默认应用服务器,或者叫应用容器。

Tomcat本身其实就是一个,也仅仅是一个,支持Servlet标准的Java EE应用容器,所以主要用途也就是做Java EE应用服务器。

虽说Tomcat是一个动态应用服务器,但是在流量不大的场景里,当然也可以直接提供HTTP服务,但一般不会这么去用,不会让Tomcat去直面客户,而是像上文所述,Tomcat一般是和诸如Nginx这种高性能静态服务器打配合,Nginx负责接收请求,然后转发到后面真正的Tomcat容器里去处理。


Jetty

Jetty也是大名鼎鼎的Spring Boot框架所支持的内嵌应用容器之一,只不过不是默认的而已,所以Jetty是和Tomcat是一个性质的东西。

image

按照Jetty官网来说,Jetty是一个开源的HTTP服务器 + 应用容器,因此可以提供静态或者动态服务,而且提供了对:HTTP/2WebSocketJMX等等许多其他集成的支持。

如果拿Jetty和Tomcat对比,两者在功能上几乎是一致的,都是做动态应用容器居多,也都符合Servlet标准。只是Jetty比Tomcat要轻量一些,配置也更简单一些而已,所以大家在用Spring Boot框架时,也别光可着Tomcat一种用,也可以切换到Jetty容器用用看。


Undertow

Undertow和上面阐述过的Tomcat、Jetty一样,也是大名鼎鼎的Spring Boot框架所支持的内嵌应用容器之一。

image

Undertow是Red Hat红帽子公司开源的一款基于Java语言编写的应用服务器,也是下面即将要阐述的一款名为Wildfly应用服务器的默认Web容器。

Undertow也符合Servlet标准规范,支持HTTP/2,支持WebSocket,是一款灵活的,高性能Web应用服务器。

在并发量不高的情况下 , Undertow与Tomcat、Jetty的性能区别不大 , 但是在并发量高的情况下, Undertow的性能其实是要优于Jetty与Tomcat的。


小结一下,上面介绍的不管是TomcatJettyUndertow,其实都还是属于那种蛮轻量的应用服务器,不重,也是开源免费的,实际用得也是非常非常多的。

然后下面再介绍几款重量级的服务器软件,当然很多也都是商用软件,他们的功能会更加综合、体量更大,虽然主要功能也是做应用服务器(应用容器),但它们更多算是一种平台级别的软件。


JBoss/WildFly

JBoss也是一个Java EE应用服务器,可以部署动态应用,但它不仅仅是Servlet应用容器,而且还是EJB应用容器。

image

JBoss在早年的确是非常火的一款动态应用服务器软件,尤其是在EJB应用时代发挥着巨大的作用。而且更广泛意义上的JBoss已经不仅仅是一个Java应用服务器了,而是一套基于Java EE框架的全套解决方案,所以也算是一个比较重量级的应用服务平台。

JBoss AS从版本8开始更名为WildFly了,因此现在你如果试图去访问JBoss官网的话,JBoss官网已经提示迁移到wildfly.org了。

image
image

所以WildFly也是一款企业级的应用服务器,由Red Hat红帽子公司开发维护,而且Wildfly应用服务器中的默认的Web容器就是上文阐述过的Undertow。


WebLogic

WebLogic是Oracle公司出品的用于部署企业级Java EE应用程序的应用服务器

image

它可谓是一个“全能型”的重量级应用服务器软件,因为支持Java EE的几乎所有应用规范,包括EJBServletJMS... 等等,当然,它毕竟是一个商业软件,有着强大的商业化和周边组件的支持,和Tomcat这种开源免费的应用容器的体量当然不一样。


WebSphere

WebSphere是IBM公司出品的Java EE应用服务器软件,功能很强大,而且有IBM的开发工具相配套,当然它也是一个价格不菲的商业服务器软件。

image

和WebLogic一样,WebSphere也是一个支持更多Java EE标准和规范的综合性应用服务器环境,可靠性高,体量更大,性能更好,功能也更全,当然使用的成本也会高很多。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270