什么是WEB服务器? 常用的WEB服务器有哪些?

一、什么是WEB服务器

Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们(译者注:脚本)的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。

二。常用的WEB服务器有哪些?

在UNIX和LINUX平台下使用*广泛的免费HTTP服务器是W3C、NCSA和APACHE服务器,而Windows平台NT/2000/2003使用IIS的WEB服务器。在选择使用WEB服务器应考虑的本身特性因素有:性能、安全性、日志和统计、虚拟主机、代理服务器、缓冲服务和集成应用程序等,下面介绍几种常用的WEB服务器。

Microsoft IIS
Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前*流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。

IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

IBM WebSphere
WebSphere Application Server 是 一 种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。

WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界

BEA WebLogic
BEA WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署*佳的应用。

BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于*地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。

APACHE

apache仍然是世界上用的*多的Web服务器,市场占有率达60%左右。它源于NCSAhttpd服务器,当NCSA WWW服务器项目停止后,那些使用NCSA WWW服务器的人们开始交换用于此服务器的补丁,这也是apache名称的由来(pache 补丁)。世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

Tomcat
Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比*大多数商业应用软件服务器要好。
Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。
目前,许多大型Web应用一般将Apache和Tomcat结合使用,Apache负责接收用户的HTTP请求,如果请求是Servlet、Jsp,则把请求转发给Tomcat处理,并将处理结果封装响应给用户。

补充部分:

1.IIS

IIS(Internet信息服务)英文InternetInformationServer的缩写。它是微软公司主推的服务器。IIS的特点具有:安全性,强大,灵活。

2.Tomcat

Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

3.Zeus

Zeus是一个运行于Unix下的非常优秀的Web服务器,据说性能超过Apache,是效率*高的Web服务器之一。

4.Nginx

Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以*大提高Rails应用的并发能力。

5.Apache

Apache是世界使用排名*的Web服务器软件。它几乎可以运行在所有的计算机平台上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

6.Lighttpd

Lighttpd是由德国人JanKneschke领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的webserver环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。支持FastCGI,CGI,Auth,输出压缩(outputcompress),URL重写,Alias等重要功能。

什么是Serverless?阿里云腾讯云都在发力「无服务器架构」

要说目前软件架构中热度十二分的话题,当属Serverless。

通常我们会将其翻译为“无服务器架构”。

尽管成天被称为“无服务器”,但该架构与传统架构不同,显然并不是真的不需要服务器。

而是选择将服务器等基础设施的管理“隐藏”起来,计算资源作为服务而不是作为服务器的概念出现。

兼具事件触发、短暂以及完全被第三方管理等多重属性,其中开发者只需关注业务逻辑即可。

那一年,也就是2012,TA首次出现在技术人的视野之中。

就在崭露头角之后的短短两年,号称云计算“3A巨头”之一的AWS,就于当年年底正式推出了Lambda 产品,标志着Serverless的商业化进程隆重被开启。

当时的Lambda曾被大家如此描述:这是一种计算服务,可以根据时间来运行用户的代码,无需关心底层的计算资源。

 

从2012年到2014年,Lambda着实不算早到。

但就像云计算PaaS初出茅庐时的说法一样:用户只管业务就好,底层IaaS就交给我们吧!

Serverless与PaaS带给人们的理念是如此惊人的相似。

随后的两年时间内,Google Cloud Function 和微软 Azure Function 在技术圈子的成功,也就顺理成章将 Serverless推进了热化阶段。

从架构变迁聚焦Serverless内涵

对于众多开发者而言,显然仅仅知道“Serverless被定义为无服务器架构”的概念完全不够,如何将Serverless的理解更具象化一些?

恐怕还是要从软件应用架构演进的角度说起。

或许你可能了解,在十几年前,单体应用作为*主流的应用架构形式被广泛认可。

依靠一台服务器外加一个数据库,就能让服务可用性达到峰值状态。

但随着服务器老化性能下降甚至自身损坏的情况,再加上企业业务量的逐渐扩大,单体架构再也不是“一招鲜吃遍天”。

哪怕在流量入口加入负载均衡器,让单体应用可以部署在多台服务器上来增加弹性,也不能完全解决由代码无物理边界所带来的大量冲突。

至此,单体应用架构*次有机会进化成微服务架构,而此时的架构师们也就不得不直面分布式带来的新挑战。

例如那些年的缓存服务 Redis、状态协调服务ZooKeeper、消息服务 Kafka等。

我们可以简单理解为,将一个大系统划分为多个业务模块,其中的业务模块又需要分别部署在不同的服务器上,各个业务模块之间通过接口进行数据交互,这件事儿似乎没那么简单。

当然除了分布式环境的特殊性以外,微服务架构也给运维带来了不小改变。

具体实践中,由于微服务可以部署在不同的服务器上,也可以部署在相同的服务器却不同的容器上,包括应用分发标准、生命周期标准以及自动化弹性等能力在内的重要性也就一一凸显出来。

转眼到了众所周知的云原生时代,业务直接上云不说,还能提供标准化的应用托管服务,包括版本管理、发布、上线后的观测、自愈等,价值红利得到进一步彰显。

而此时Serverless也正迎着这波技术红利闯入了大众的视线,得到关注。

可以看出,在架构的演进中,无论是研发还是运维人员都逐渐将着眼点从机器向平台系统转移,而不是单纯用人去管理,这或许是对于Serverless原理*朴素的阐释。

总结一下,Serverless的出现其实是将主机管理、操作系统管理、资源分配等,甚至是应用逻辑全部组件都集成为服务。

如果将其放在当下的云计算场景中,就不能单纯狭义理解为“不用关心服务器”那么简单,毕竟上云的资源除了服务器之外,还涉及基础计算、存储资源、网络资源等诸多,也包括数据库、缓存以及消息队列等更上层的范畴。

Serverless架构类同FaaS,又做何解?

提及 Serverless,很多人的*反应都是 FaaS+BaaS。

的确,这是 Serverless的一种实现形式,也是一种比较主流的理解。

所谓“FaaS+BaaS ”,其实就是函数即服务与后端即服务的结合体。

具体来说,BaaS(Backend as a Service)可以被解释为“后端即服务”。

一般是API调用后端或别人已经实现好的程序逻辑,通常用来管理数据。

例如,亚马逊RDS可以替代自己部署的MySQL,当然其中还有各种其它数据库、中间件的作用。

FaaS(Functions as a Service)则是函数即服务,作为无服务器计算的一种形式,当前使用*广泛的当属AWS的Lambada。

经过长期实践我们认为,Serverless架构可以提供一种更加“代码碎片化”的软件架构范式,而所谓的“函数”(Function),则是提供相比微服务更加细小的程序单元。

进一步来说,究竟该如何理解“函数即服务”的概念?

大致上是开发者先将函数定义封装在容器中,通过调用函数来实现调用后端存储等服务。

本质上,FaaS是一种事件驱动的由消息触发的服务。

与传统的服务器端软件的不同,经应用程序部署到拥有操作系统的虚拟机或者容器中,一般需要长时间驻留在操作系统中运行。

而FaaS则可以直接将程序部署上到平台上,当有事件到来时触发执行,执行完了就可以消灭。

更重要的一点,FaaS产品不需要对特定框架或库进行编码。

还是以AWS Lambda函数为例,函数可以在Javascript、Python、Go等,也就是任何JVM语言(Java,Clojure,Scala等)或.NET语言中实现;但与此同时,Lambda函数还可执行与其部署工件捆绑在一起的另一个进程。

在FaaS环境中,用户将函数功能代码上传到FaaS提供商,其中对的水平扩展是完全自动弹性的。

而“函数”还可以代表客户所要执行的每个操作,即每个函数完成一个相对简单的业务逻辑,一个完整的应用由若干个函数组成,主要包括创建、读取、更新以及删除等。

 

目前,函数即服务(Function as a Service,FaaS)是当下Serverless实现的技术基础。

因为FaaS和Serverless之间关系密切,所以FaaS的特点也可以被认为是Serverless平台的特点,但如果单纯认为Serverless就是FaaS,就比较狭义了。

BaaS 时代仅仅以 API 的方式提供应用依赖的后端服务;而在 FaaS 时期,用户与开发者不再关注底层,这么说Serverless繁荣也是合理有据的事儿。

使用Serverless,也是一把双刃剑

据实际观察,一直以来企业使用 Serverless 通常会涉及几方面因素,其中“减少运营成本”被认为是*直观有效的原因之一。

的确,应用Serverless后,企业就无需再为潜在的流量高峰买进大部分时间都可能空闲的服务器机架,而是根据流量进行自动伸缩,采用按请求量来付费的灵活方式。

此外“自动按需扩展”可以发挥到*致:随时扩展到当前的使用量,消除了意外或者季节性流量高峰的困扰。

更重要的是,Serverless 不需要关心内存泄露,还具备将云数据库、云消息队列等服务囊括在内的完善配套设施,*大减少工作量。

哪怕企业中大部分的开发人员都出身软件,对修复保护以及管理并不擅长,一样可以做到专注软件开发,Serverless*对没问题。

基于此,一直以来国内外都有很多企业致力于提供基于Serverless 框架的能力服务,接受程度更是水涨船高,简单盘点下,尤其是几家大型的公有云厂商。

例如里程碑式的AWS Lambda。

作为AWS针对Serverless架构推出的FaaS云服务,AWS Lambda自2014年上线以后就受到广泛关注,除了满足大家对Serverless的期望之外,更重要的是AWS平台的成功。

AWS Lambda的优势可以简单总结为:

成熟度高:*个在主流公有云平台上的Serverless FaaS平台,已经有数年的发展和沉淀用户基数大:AWS Lambda有较大的用户基数,参考案例很多活跃的社区:目前开源社区有很多围绕AWS Lambda展开的开源项目AWS的整合:AWS Lambda天然和AWS平台上的服务有良好集成紧随其后,Microsoft Azure也在2016年推出了事件驱动的函数式云计算服务Azure Functions。

其支持用户以多种语言进行函数开发,包括Java、Node.js、PHP、C#、F#、Bash及Microsoft Windows的PowerShell脚本等。

此外,Azure Functions除了提供公有云的版本之外,还提供私有化(On-premises)部署的版本Azure Functions Runtime。

产品功能也是可圈可点:

完整性:Azure Functions是一个功能比较完备的Serverless FaaS平台整合:Azure Functions天然与Azure云平台上各类服务有良好的集成平台:对于使用微软体系产品和工具构建IT能力的企业而言,Azure Functions是Serverless转型的首选平台私有化:提供带有商业支持的私有化部署版本,可满足不同层面的用户的需求同样是在2016年,Google Cloud Platform推出了Google Cloud Functions平台,也同时加入Serverless领域的竞争序列。

同为FaaS平台,Google Cloud Functions与AWS Lambda和Microsoft Azure在功能上*大的区别有啥?

细数以后,可能在于Google Cloud Functions目前仅支持JavaScript作为函数开发语言,运行环境为Node.js。

2018年7月,Google又顺势公布了开源项目Knative,定位为Kubernetes的Serverless插件,推出后得到了Pivotal、IBM以及Red Hat的大力支持。

国外争先恐后,国内也是蜂拥而至。阿里云作为国内*批推出Serverless平台的公有云厂商,其FaaS平台产品被称为阿里云函数计算。

如果从事件触发、支持语言以及用户体验等方面考量,该产品也有很多数据值得关注:

事件触发:阿里云函数计算可以被阿里云上的服务事件触发,例如阿里云对象存储(OSS)支持语言:阿里云函数计算目前支持的开发语言为Node.js,并计划后续将支持Java及Python整个函数代码的部署包大小不能超过50MB,部署包解压后的代码不能超过250MB用户体验:阿里云函数计算提供了基于Web的控制台和SDK;用户可以通过Web控制台管理函数应用,也可以通过交互式的命令行来操作服务规格:一个服务下*多包含50个函数和10个触发器。在运行时,函数*长的运行时间为300s,即5min,一个函数的*大并发数为100同为国内云计算竞争的翘楚,无服务器云函数(Serverless Cloud Function,SCF)是腾讯云推出的函数式计算平台,根据官方的资料,其发布时间是2017年4月26日。

 

总结下腾讯云Serverless平台的特点:

函数运行时:腾讯云SCF目前支持Python、Java及Node.js作为函数的开发语言用户可以以压缩包的形式从本地上传代码,也可以引用腾讯云对象存储中的代码文件事件触发:目前腾讯云SCF支持的事件触发源有腾讯云对象存储COS、定时器、腾讯云消息服务CMQ,以及用户手动通过API及控制台触发服务规格:每个函数将在一个基于CentOS Linux的环境中被执行。函数执行的内存范围为128MB至1536MB,单个区域支持的*大函数定义数量为20个,函数执行的*大时长为300秒,*大的并发数为5以上我们探讨的基本是大型公有云服务商针对Serverless的技术实践。

其实与公有云相比,在私有环境中构建Serverless平台,在技术上并没有什么太多障碍,自然也有不少*的技术尝试,对于此我们会专门成文详细探讨。

可以发现,哪怕是拥有世界范围影响力的公有云服务商针对Serverless的技术探究似乎也出现了缺乏统一认知以及相应标准,无法适应所有的云平台的情况,例如支持的开发语言不同,事件触发的机制有差异等。

毕竟Serverless从来都不是一款产品,也不是一个工具,而是一整套能力的合集。

甚至在实践中还会出现业务轻量化困难、难以在秒级甚至毫秒级别扩容出业务实例;基础设施响应能力不足导致服务发现和日志监控系统等问题。

进而带来大量其他web服务器托管提供商可能会倒闭,很多SaaS平台受到冲击以及运维和实施人员的生存空间进一步缩小等行业现象。

但不容规避的一点,Serverless 架构的兴起使“去服务器化”真正造福了开发者,让基础设施管理出现了新契机。

随着技术上对去中心化以及轻量虚拟化的需求越发强烈,这种“全云化”的模式似乎预示着真正的云时代正在到来,不是吗?
————————————————

一切轻量级WEB服务器推荐

虽然轻量级 Web 服务器有很多共同之处,但是各有各的不同。大多数轻量级 Web 服务器是用 C 编写的,但是实践证明,有些其他实现语言也可以成功地用于实现服务器,对此我已经做了实验,这些语言包括 Erlang、Java、Lisp、Lua、Perl、Python 和 Tcl。如果其中有您喜欢的语言,那么也许可以找到适合您的 Web 服务器。

由于很多特定的原因,您可能会将目光投向某种 “不常见” 的语言:

教学:使用轻量级 Web 服务器来制定一个重要、但是并不太大的目标。这是获得使用某种语言的经验的好方法。
虽然用 C 编写的轻量级 Web 服务器大小为 10-50 KB,更高级的语言有 100 KB 到数 MB 的运行时,但整个 Web 服务器的源文件可能只占几千个字节。这种 Web 服务器占用的空间很小,因此比 Apache 更易于与技术伙伴共享。
更高级的语言可以使实验更吸引人 —— 例如,添加一个新的 HTTP/1.1 特性可能只需几行源代码。这些轻量级服务器是非常方便的实验材料。
将 HTTP 服务器添加到已有的、用高级语言编写的应用程序中只需增加几行源代码。
Athana 可以作为这些主题的例子。它是用 Python 编写的 Web 服务器。它支持 HTTP 多部分(上传)、会话、 cookie 等。从 0.2.1 版开始,Athana 一直被编写在一个单独的、精心组织的源文件中。

如前所述,不同的轻量级 Web 服务器有着不同的优点,它们或多或少独立于编程语言。所有轻量级 Web 服务器都比 Apache 更小、更易于配置。与 Apache 相比,有些轻量级 Web 服务器更快,有些则快得多。有些则强调安全性、重负载下的从容性、可扩展性或者内存占有量。在任何情况下,都可以以一种不适用于 Apache 的方式彻底地理解这些服务器。

哪些特定的产品使这些可能性成为现实?即使只留意 “轻量级” 服务器,面对的也是一个很大的难于管理的产品集合。不过可以将它们按子类来划分:超轻型、关注安全型、支持特定语言型等等。

我特别喜欢其中的超轻型 Web 服务器,它们比 Apache 小得多。如此小的应用程序可以直接记住,系统地、严密地加以考虑,以证明它们的安全性或可伸缩性。小型 Web 服务器包括:

Cheetah Server,用不到一千行的 C 代码编写而成。
DustMote,一个非常 小的 Web 服务器,用一个大约 3000 字节的 Tcl 源文件实现。
fnord,大小取决于平台和配置,不超过 20K。虽然很小,但是它支持虚拟主机、CGI 和 keep-alive。
ihttpd,使用不到 800 行的 C 代码,包括 CGI,并通过 inetd 提供页面。
im-httpd,非常小的服务器 —— 只有大约 7 KB,链接到 glibc。而且它也非常快。
mattows,支持 CGI,只有 600 行 C 代码。
Scrinchy,虽然很小,不到 30KB,但是支持多种脚本编制语言,包括一种特殊用途的、基于栈的 Sy 脚本语言。
ZWS 演示了一个即使是使用 500 多行带足够注释的 zsh (!) 编写的应用程序 —— 在这里是一个 HTTP 0.9+ 服务器 —— 也可以有多强大。
体积小并不妨碍这些服务器被正式使用。例如,fnord 可以处理数千个同时进行的连接。

也许轻量级作为一个类别*令人印象深刻的成就是高性能服务器:

cghttpd 是一个小型 Web 服务器,它被理解为使用 2.6 系列内核中可用的异步功能的一个试验品。
darkhttpd 是一个快速的、单线程的 HTTP/1.1 服务器。
Gatling 是为高性能设计的。它的特性包括 FTP、IPv6、虚拟主机、CGI 等。
Kernux 是一个 Linux 内核模块,它实现了一个 HTTP 守护进程。
lighttpd 是使用率排名第五的 Web 服务器(排名还在上升)。它为很多同时进行的连接进行了优化:“典型的场景是使用 lighttpd 作为一个下载(off-load)服务器,以提供静态内容……”
LiteSpeed Web Server 是一款轻量级商业 Web 服务器,强调性能和安全性。 LiteSpeed Technologies 公司宣传为静态内容提速了 6 倍,在解释页面方面也有一定的提高。
Miniature JWS,也称 tjws,它是基于 Java 的 Web 服务器,可以处理 servlet、JSP 和数千个并发连接,而大小只有 77 KB。它的作者声称它 “比 Apache 2.x 快 10%”。
Yaws 是用 Erlang 编写的一款高性能 HTTP/1.1 服务器。

有些 Web 服务器被实现为类或库,以便嵌入 到较大的应用程序中。 在这些 Web 服务器当中,我发现特别有趣的有:

EHS —— “嵌入式 HTTP 服务器”,被设计为一个 C++ 类,用于嵌入到较大的 C++ 应用程序;还有
Embedded TCL Web Server,它是一个很普通的 Web 服务器,支持 SSL 和 Basic Authentication,速度非常快 —— 其作者使它至少与 lighthttpd 和 AOLserver 一样快。它是用不到 100 行 Tcl 编写的。

Python 是几种适合不寻常环境的 Web 服务器的实现语言,这些 Web 服务器包括:

cdServer 是一个小型的、用 Python 编写的 HTTP 服务器,它 “被设计用来提供来自 CD-ROM 的(静态)内容” 。它在提供动态内容方面能力有限。我们有几个涉及不受影响的 “live CDs” 的项目,在这些项目中像 cdServer 之类的工具很关键。
edna,一款智能的用 Python 编写的 MP3 服务器,它是用 HTTP 实现的。

还有其他一些用 Perl 和其他不出名的语言编写的轻量级 Web 服务器:

Camlserv,用 ocaml 编写的一个完整的 Web 服务器,目标是 “高度交互式的 Web 页面”。它由几千行 ocaml 编写而成,其中大部分代码都与 MySQL 和 HTML 的特殊处理有关。
dhttpd 用和 Apache 相同的格式记录访问。它支持 CGI,并具有内建的 Perl 解释器、虚拟主机、IPv6、带宽管理和安全性等方面的特性。
DNHTTPD 是用 Perl 编写的,用于 UNIX®。它支持虚拟主机、SSL 连接、CGI 等。
Jellybean 是用 Perl 编写的基于 HTTP 的 Perl Object Server。
lns.http 是一个 Common LISP HTTP/1.1 Web 框架。
Mongrel 是用 Ruby 编写的、用于 HTTP 的一个库和服务器。
Nanoweb 是用 PHP 编写的一款快速、健壮的 Web 服务器。它宣称具有丰富的特性,包括完全遵从 HTTP/1.1、访问控制、身份验证、虚拟主机、SSL 兼容性等。
Naridesh 是用 Perl 编写的 Web 服务器。
OpenAngel 是用 Perl 编写的。它强调的重点是安全性。
Xavante 是用 Lua 编写的 HTTP/1.1 Web 服务器。
XSP 是用 C# 编写的,用于运行 ASP.NET。

有时候您可能需要其他一些用 C 编写的、具有不常见的次要优势的轻量级 Web 服务器:

ABYSS 可以在 UNIX 和 Win32 之间移植,其 “目的是成为完全遵从 HTTP/1.1 的 Web 服务器”。它占用的内存很少。
Anti-Web HTTPD(也称 “Anti-Web”、“awhttpd” 和 “AW”)是一款单进程、无线程、支持 CGI 的服务器,它强调安全性和简单性。
MHTTPD 支持从外部文件或 LDAP 服务器进行的 MHTTPD Basic Authentication。
mini-httpd 可以在一个系统线程中处理多个并发请求,但是在主机上占用的内存或 CPU 很少。
Naken Web 类似于很多其他的轻量级服务器 —— 它支持 Basic Authentication、静态内容等 —— 但是它的作者将它设计为用于 Webcam 操作,并且在 Gumstix、WRT54GL、OpenWrt 和其他新的平台上运行。
Null httpd 是一款多线程的、简单的、可移植的 Web 服务器。
Seminole 是一款商业 Web 服务器,内存需求较小,功能较多。
thttpd throttle,支持 chroot、 Basic Authentication 等。

云服务器的市场越来越大主要是什么因素?

云计算市场的份额每年都在向上攀登,现在的企业有了一定规模之后,基本都有云服务器的业务需求,因为使用云服务才能更好地拥抱互联网+,也能更好更方便地为用户提供服务。“云”指通过计算池提供资源,而计算池的组成是由众多的服务器集群来组成,并且对该集群统一管理,形成“资源池”,才能满足云计算业务的需求。

 

云服务器是*灵活的虚拟机。与我们所看到的所有其他服务器类型一致,云服务器为您提供完整的基础设施环境。云服务器可以在几分钟内快速部署,供您使用,同时支持随时随地弹性扩展资源,或是当不再需要时缩减资源。使用云服务器的一个主要优点是,它们可以实现以代码的方式来进行基础架构管理。全面的云API允许用户通过与现有应用程序的脚本集成,来交互和控制其云部署。

 

对于云服务器来说,具有很高的稳定性。由于是多台主机共同参与计算运行,因此企业网站的程序运行会更加的快捷。大家经常浏览网站,对于网站的打开速度都很是关心。其实要知道有些网站的打开速度并不仅仅是网络带宽的原因,更重要的是服务器本身的运算能力和稳定性。并且因为采用资源池的概念,会有一定的备用资源,当其中某一台服务器出现故障时,能迅速的从资源池中释放备用资源供用户使用。

 

不论资源的规模和地理位置如何,所有资源都是通过网络由统一的管理节点进行管理、调度和监控。这种统一管理能充分实现资源的共享和调度,以及资源的*大化利用和*优化配置。可以承载尽可能多的系统和应用,实现更高的共享性和资源利用率。同时可以支撑海量数据存储和处理需求,满足互联网应用的数据爆炸性增长需要。

 

由于在互联网上提供云计算服务时都是以接口方式提供计算和存储能力的,因此,云计算运营商具有非常强大的批量提供能力。例如,以前要购买、安装、配置1000台PC服务器可能需要几周甚至更长的时间,但通过云计算模式,部署与服务器,可能只需要几小时甚至几分钟。

 

云服务器所有数据实时写入多份,结合备份恢复、云快照、云镜像等功能,就算是硬件出现问题,数据也不会受到影响,用户只需做好正常维护即可,服务商也会提供必要协助,可为企业节省很多人力。服务器安全对于使用者来说非常重要,如果服务器遭受攻击,网站运营就无法正常进行,而云服务器通常自带一定的抗攻击能力,如ddos高防、WAF防御,就算网站被攻击也能提供有效缓冲,维护业务安全。

 

云服务器是按需买单,用多少买多少,不会造成资源的浪费。随着技术的不断成熟,上云成本也在逐年降低,特别是前期的投入不像物理服务器一样,需要大笔的资金购买硬件。云服务器支持月付、年付,灵活计费方式,无需押金,按需弹性扩容,只需为使用的存储能力、计算能力与资源支付费用,需要多大就买多大。

 

简单地说,云计算是指基于互联网将规模化资源池的计算、存储、开发平台和软件能力提供给用户,实现自动化、低成本、快速提供和灵活伸缩的IT服务。云服务器是基于互联网将规模化资源池的计算、存储、开发平台和软件能力提供给用户,实现自动化、低成本、快速提供和灵活伸缩的IT服务。

免费开源的几款Web服务器软件简介

由于*近在部署云服务器主机,在对Web服务器软件的选型方面进行了摸索,把笔记记下来,便于以后查阅。

一、NGINX
俄罗斯人Igor Sysoev从2002年开始开发NGINX,并在2004年发布了*个公开版本。NGINX的开发是为了解决C10K(C10K是如何处理1万个并发连接的简写)问题,目前,它是第二流行的开源web服务器,全球有超过30%的网站在使用它。

NGINX依靠异步事件驱动架构来帮助其处理大量的并发会话,由于其对资源的轻量利用和伸缩自如的特性,它成为了广受欢迎的web服务器。

NGINX在类BSD(Berkeley Software Distribution)许可协议的授权下发布的,它不仅可作为web服务器进行部署,也可作为代理服务器或负载平衡器。你可以在NGINX社区网站找到它的更多信息。

二、Apache HTTP Server
Apache HTTP Server,我们常常称之为httpd,或者更简单的Apache。它诞生于1995年,并在2015年2月20日度过了其20岁的生日。全球超过52%的网站使用了Apache,它是目前*流行的web服务器。

Apache httpd通常运行在Linux上,也可以部署在OS X和Windows之上,它的发布得到Apache许可证 2.0 版的许可。该web服务器自身使用模块化架构,加载其它额外的模块可以作为其额外特性。比如,加载mod_proxy模块可以增加服务器代理/ 网关的功能,加载mod_proxy_balancer模块可以为所有支持的协议提供负载平衡。在v2.4版本里,Apache可通过全新的mod_http2模块支持HTTP/2。

从1996年开始,Apache HTTP Server就已经是*为流行的web服务器了,这与它拥有伟大的文档和软件项目集成支持的特性是分不开的,你可以在Apache基金会的项目页面上找到它的更多信息。

 

三、Apache Tomcat
Apache Tomcat是一个可作为web服务器的开源Java servlet容器。Java servlet是可扩展服务器特性的Java程序,虽然servlets可以对任何类型的请求作出响应,但是它还是*常用于Web服务器上的应用实施。这些web servlet在Java上的作用与PHP和ASP.NET等其它动态web技术类似。Tomcat的代码库是由Sun Microsystems公司在1999年捐赠给Apache软件基金会的,并在2005年成为Apache的顶级项目,目前有不到1%的网站在使用它。

Apache Tomcat是在Apache许可证 2.0 版的授权下进行发布的,通常用于运行Java应用程序。此外,它能够通过Coyote的扩展,扮演为本地文件HTTP文档服务的普通服务器的角色。更多详细的信息可以查看Apache Tomcat项目网站。

另外,Apache Tomcat还经常内嵌在其它开源Java应用服务器中,如JBoss, Wildfly和Glassfish。

 

四、Lighttpd
Lighttpd,于2003年3月首次发布,目前全球有大约0.1%的网站在使用它,它是在BSD的许可协议下发布的。

Lighttpd以其低内存占用,低CPU负载和处理速度的优化而独立于世,它使用事件驱动架构,对大量并行连接进行优化,支持FastCGI, SCGI, Auth,Output-compression, URL-rewriting等多种功能。Lighttpd主要用于Catalyst和Ruby on Rails的web框架。通过项目主页,你可以找到它的更多信息。

云服务器与传统服务器相比有哪些优点?

云服务器是云计算服务的重要组成部分,是面向各类互联网用户提供综合业务能力的服务平台。平台整合了传统意义上的互联网应用三大核心要素:计算、存储、网络,面向用户提供公用化的互联网基础设施服务。云服务器平台的每个集群节点被部署在互联网的骨干数据中心,可独立提供计算、存储、在线备份、托管、带宽等互联网基础设施服务。

传统服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机提供计算或者应用服务。服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。云服务器与传统主机相比,具有以下几点优势:

弹性扩展。对于一些中小型企业来说,随着业务、规模的不断扩大,后期需要进行的扩容和升级等操作,而云服务器租用价格低于传统的物理服务器租用,且无需支付押金。 具有快速供应和部署能力,用户在提交云主机租用申请后可实时开通,立即获得服务。 业务支持平滑扩展,当用户业务规模扩张时,可快速实现业务扩容,无需重新购置硬件或安装系统,更不会对之前的使用与业务造成影响。

云主机简化了操作和维护,企业不需要具备高技术能力,不需要为网络安全付出太多的成本和精力,只需专注于内部应用的管理。云计算服务提供商依靠专业技术团队来确保云平台的安全性和可靠性。企业可以放心使用云资源,更安全地开展在线业务。云服务器所有数据实时写入多份,结合备份恢复、云快照、云镜像等功能,就算是硬件出现问题,数据也不会受到影响,用户只需做好正常维护即可,服务商也会提供必要协助,可为企业、用户节省许多人力资源成本。

如今网络攻击高发,服务器安全对于使用者来说非常重要,如果服务器遭受攻击,网站运营就无法正常进行,而云服务器通常自带一定的抗攻击能力,如DDoS高防、WAF防御,就算网站被攻击也能提供有效缓冲,维护业务安全,内置冗余的共享存储和智能备份,使得云服务器失败可在几分钟内自动恢复。

在使用传统的服务器时,后期的维护也是需要很大成本的,而且主要依靠大量的后期维护人员,并且安全管理问题有一定难度。而使用云服务器集中化的管理和业务备份对于后期维护就会很轻松,同时也会避免网络安全的威胁,节省人力成本。云服务供应商会定期升级服务器硬件、机房带宽,优化集群计算架构,高性能的设备、优异的磁盘I/O、多线互通的网络,持续优化的算法,让服务器响应的速度更快,网站运行更加高效。

其实云服务器*大的特点是可灵活定制化CPU、内存、硬盘及带宽配置资源及开通时长,根据定制化的配置按需计费,不开通不计费,且根据业务需求可灵活调整配置弹性扩展。且可随时不停机升级带宽,升级CPU和内存,支撑业务的持续发展。云服务的高可用性,为业务的稳定运行提供保障。

常见服务器类型及其简单介绍

网站服务器分为多少个类型呢?

网站服务器主要分为塔式、机架、刀片三种服务器类型,其实无论去到那里服务器的类型都是这三种为主。 塔式、机架及刀片服务器作为企业*常选购的基础硬件设备,一间中小企业采购几台机架服务器合适,或者机架与刀片的配比等都是需要详细考虑的,只有很好的搭配才能够有效降低企业的经营成本。

塔式、机架、刀片服务器有什么特性?

一、塔式网站服务器
1、塔式服务器是见得*多的一种,其外形及结构都与普通的PC主机相差无几,只是个头稍大,外形尺寸并无统一标准。

2、塔式服务器的主板扩展性较强,且机箱内部往往会预留空间,以便进行硬盘、电源等的冗余扩展。塔式服务器无需额外设备,对放置环境没太多要求,并且具有良好的可扩展性,因而应用范围非常广泛,可以满足一般常见的香港服务器应用需求。

3、但事物都有双面性,塔式服务器也有不少局限性,如在需要采用多台服务器同时工作以满足较高的服务器应用需求时,由于其体积比较大,占用空间多,管理复杂,便显得很不适合。

二、机架网站服务器
1、机架式是*大多数企业首选服务器,其统一标准的设计,满足企业服务器密集部署需求。机架服务器的主要优势表现在节省空间,由于能够将多台服务器安装到一个机柜上,不仅可以占用更小的空间,而且便于统一管理。机架服务器的宽度为19英寸,高度以U为单位(1U=1.75英寸=44.45毫米),通常有1U,2U,3U,4U,5U,7U几种标准的服务器。

2、由于机架服务器内部空间限制,扩展性受到“拖累”,例如1U的服务器大都只有1到2个PCI扩充槽。此外,散热性能也是一个需要注意的问题,且还需要有机柜等设备,因此机架服务器多用于服务器数量较多的大中型企业使用,但也有不少企业将服务器托管于服务商。

3、价格方面,机架的网站服务器一般比同等配置的塔式服务器售价高出30%左右。

三、刀片网站服务器
1、刀片服务器是一种高可用高密度的低成本服务器平台,是专门为特殊应用行业和高密度计算机环境设计的,每一块刀片类似于一个个独立的服务器,它们可以通过本地硬盘启动自己的操作系统。在集群模式下,所有的刀片可以连接起来提供高速的网络环境,共享资源,为相同的用户群服务。

2、根据所需要承担的服务器功能,刀片服务器被分成服务器刀片、网络刀片、存储刀片、管理刀片、光纤通道SAN刀片、扩展I/O刀片等等不同功能的刀片服务器。

3、刀片服务器相较机架服务器更节省空间,同时,散热问题也更突出,往往需要在机箱内安装大型风扇来散热。此型服务器虽然空间较节省,但是其机柜与刀片价格都不低,一般应用于大型的数据中心或需要大规模计算的领域,如银行电信金融行业以及互联网数据中心等。

web服务器和app服务器

简单来说,web服务器提供页面给浏览器,而app服务器提供客户端可以调用的接口。

web服务器处理HTTP协议。当收到一个HTTP请求之后,web服务器会返回一个HTTP响应,比如一个HTML页面。为了处理请求,它可能响应一个静态的HTML页面、图片、重定向,或者代理(delegate)其他动态响应。这些动态响应可以由其他程序生成,包括CGI脚本,JSPs,servlets,ASPs,服务器端的Javascript,或者其他服务器端技术。而这些服务器端程序响应,大多数时候都表现为HTML页面,供浏览器访问。

eg:
Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。Apache用tomcat扩展后既可以解释java程序(jsp,serverlet)。

不同于web服务器主要发送用来展示在浏览器上的HTML页面,app服务器为客户端程序处理应用逻辑方面问题。应用程序使用这些逻辑,就如同调用一个对象的方法(或者面向过程编程中的函数)一样简单。
分别举例子说明:

场景1:web服务器,而非app服务器

在这个场景里,web服务器独自提供在线商店的功能。它接受用户的请求,交给服务器端程序处理。该服务器端程序通过数据库,或者纯文本,查找到价格信息,然后生成HTML响应,通过web服务器返回给用户的浏览器。

总结来说,web服务器仅需要接受HTTP请求,并响应HTML网页。

场景2: web服务器 + app服务器

同场景1一样,web服务器仍然代理脚本生成的响应。但是你可以把业务逻辑部署在app服务器上。这样,脚本就不需要去关注怎样查询和生成响应,而仅需要调用app服务器提供查询服务,从而利用其生成它的HTML响应。

在这个例子中,app服务器提供了价格查询的业务逻辑。这个逻辑不应该包含怎样去展示,或者强迫客户端使用这些数据。相反的是,客户端和app服务器进行交互,只有当客户端调用了app服务器的价格查询服务的时候,该服务才查找到信息并返回。

同HTML代码生成分离开后,价格查询逻辑的复用性提高了。另外一个客户端,比如收银机,同样可以调用这个接口。而场景1里,价格查询服务就很难被重用,因为它和HTML页面紧密联系。

总结来说,第二个场景中,web服务器处理HTTP请求,并返回HTML页面,而app服务器处理业务逻辑。
注意事项:

1.近来,XML web服务器模糊了app服务器和web服务器的界限。发送一个XML请求给web服务器,web服务器可以像过去的app服务器一样,处理数据并返回响应。

2.另外,很多app服务器包含web服务器,这就意味着你可以把web服务器看做app服务器的一个子集。虽然app服务器包含web服务器的功能,但是开发者还是很少以此身份发布app服务器。如果需要的话,他们通常将web服务器和app服务器分离开。这样的目的是,性能(简单的web请求不会影响到app服务器的性能)、发布配置(专用的web服务器,集群等)、更好的厂商选择。

怎样在Win7系统中搭建Web服务器

一、搭建web服务
1、打开控制面板,选择并进入“程序”,双击“打开或关闭Windows服务”,在弹出的窗口中选择“Internet信息服务”下面所有的选项,点击确定后,开始更新服务。

2、更新完成后,打开浏览器,输入“http://localhost/”回车,如果此时出现IIS7欢迎界面,说明Web服务器已经搭建成功。

3、当web服务器搭建成功后,我们下一步所要做的就是把我们开发的网站安装到Web服务器的目录中。一般情况下,当Web服务器安装完成后,会创建路径“c:/inetpub/wwwroot”,将我们开发的网站COPY到该路径下。即可实现本地访问该网站。

4、设置防火墙,让局域网当其它计算机也能访问本地网站资源。具体方法:打开控制面板,选择“系统和安全”,点击“允许程序通过Windows防火墙”,在弹出的对话框中勾选“万维网服务HTTP”右侧的两个复选框,*后点击确定退出。

5、在局域网中其它计算机上,打开浏览器,输入 “http://Web服务器的IP地址/”按回车键,就可以访问服务器上的资源”。 经过以上步骤的设置,局域网中的其它用户就可以通过浏览器访问你所共享的web资源了!

二、IIS默认连接端口80的更改方法

三、参考链接:
https://blog.csdn.net/weixin_37848710/article/details/78780160

怎么把自己的电脑做成服务器,能让别人访问自己的网页?

做成web服务器需要满足:域名或者公网ip,电脑安装配置web服务,开启80端口允许访问,网站程序。

  1. 域名或者公网ip,这一点一般家用宽带没有固定的公网ip,常用的动态域名解析花生壳,科迈动态解析,建议申请使用花生壳动态域名解析,并设置到路由器上,这样网站的访问域名是花生壳的子域名。

    如果有公网固定ip,建议购买一个域名解析到这个ip上,这个公网ip可以在电脑直接设定。web绑定,防火墙允许80端口就可以了。

  2. 电脑安装配置web服务,这个条件比较好实现 ,找个服务器操作系统,如win2003系统,安装上iis组件就可以了,默认80就打开了,然后再配置一下你程序需要的环境,

    如果.net程序就安装net framwork相应版本,如果php就配置php+mysql环境。

  3. 家用宽带默认80端口在路由器不开放的,需要在路由器上做端口映射,将你个人电脑ip 80端口通过宽带路由映射出去。

    端口映射参考以下教程:

    http://jingyan.baidu.com/article/3a2f7c2e48076426afd611ad.html

  4. 网站程序,自己会开发了可以自己做,不会了到网上下载一些开源程序就可以了。