欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

服务器干什么用的,服务器的作用与分类介绍

程序员文章站 2024-02-10 20:36:52
统计数据显示;超过80%的web应用程序和网站都是使用的开源web服务器。在本文中,我们将介绍目前市场上最流行的5大开源web服务器,并简要回顾它们的历史,技术特性以及更多相关内容,方便你自己能够更加...

统计数据显示;

超过80%的web应用程序和网站都是使用的开源web服务器。在本文中,我们将介绍目前市场上最流行的5大开源web服务器,并简要回顾它们的历史,技术特性以及更多相关内容,方便你自己能够更加轻松的部署这些流行的web服务器。

根据*介绍,web服务器是“通过http协议处理web请求的计算机系统”(a computer system that processes requests via http)。这个词可以指代整个系统,也可以指代可接收和管理http请求的的程序。本文中介绍的web服务器指的是为终端用户处理web请求的程序。

nginx服务器

服务器干什么用的,服务器的作用与分类介绍

igor sysoev从2002年开始开发nginx,并在2004年发布了第一个公开版本。nginx的开发是为了解决c10k(c10k是如何处理1万个并发连接的简写)问题,目前,全球有超过30%的网站在使用它。

nginx是一款轻量级的web 服务器/反向代理服务器及电子邮件(imap/pop3)代理服务器,并在一个bsd-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,*使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

服务器干什么用的,服务器的作用与分类介绍

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

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

nginx的特点:

服务器

nginx作为负载均衡服务器:nginx 既可以在内部直接支持 rails 和 php 程序对外进行服务,也可以支持作为 http代理服务器对外进行服务。nginx采用c进行编写,不论是系统资源开销还是cpu使用效率都比 perlbal 要好很多。

处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。

无缓存的反向代理加速,简单的负载均衡和容错。

fastcgi,简单的负载均衡和容错。

模块化的结构。包括 gzipping, byte ranges, chunked responses,以及 ssi-filter 等 filter。如果由 fastcg或其它代理服务器处理单页中存在的多个 ssi,则这项处理可以并行运行,而不需要相互等待。

支持 ssl 和 tlssni。

代码

nginx代码完全用c语言从头写成,已经移植到许多体系结构和操作系统,包括:linux、freebsd、solaris、mac os x、aix以及microsoft windows。nginx有自己的函数库,并且除了zlib、pcre和openssl之外,标准模块只使用系统c库函数。而且,如果不需要或者考虑到潜在的授权冲突,可以不使用这些第三方库。

代理服务器

作为邮件代理服务器:nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),last.fm 描述了成功并且美妙的使用经验。

nginx 是一个安装非常的简单、配置文件非常简洁(还能够支持perl语法)、bug非常少的服务器。nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。

lighttpd服务器

lighttpd 是一个德国人领导的开源web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销、cpu占用率低、效能好以及丰富的模块等特点。

服务器干什么用的,服务器的作用与分类介绍

lighttpd以其低内存占用,低cpu负载和处理速度的优化而独立于世,它使用事件驱动架构,对大量并行连接进行优化,支持fastcgi, scgi, auth,output-compression, url-rewriting等多种功能。lighttpd主要用于catalyst和ruby on rails的web框架。通过项目主页,你可以找到它的更多信息。

apache

apache http server 简称为 apache。它诞生于1995年,并在2015年2月20日度过了其20岁的生日。全球超过52%的网站使用了apache,它是目前最流行的web服务器。

apache,中文名:阿帕奇,是apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的web服务器端软件之一。它快速、可靠并且可通过简单的api扩展,将perl/python等解释器编译到服务器中。开发者 apache软件基金会。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只支持静态网页,但像php,cgi,jsp等动态网页就需要tomcat来处理。 tomcat是由apache软件基金会下属的jakarta项目开发的一个servlet容器,按照sun microsystems提供的技术规范,实现了对servlet和javaserver page(jsp)的支持,并提供了作为web服务器的一些特有功能,如tomcat管理和控制平台、安全域管理和tomcat阀等。由于tomcat本身也内含了一个http服务器,它也可以被视作一个单独的web服务器。但是,不能将 tomcat 和 apache web 服务器混淆,apache web server 是一个用 c 语言实现的 http web server;这两个 http web server 不是捆绑在一起的。apache tomcat 包含了一个配置管理工具,也可以通过编辑 xml 格式的配置文件来进行配置。apache,nginx,tomcat并称为网页服务三剑客,可见其应用度之广泛。

服务器干什么用的,服务器的作用与分类介绍

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

另外,apache tomcat还经常内嵌在其它开源java应用服务器中,如jboss, wildfly和glassfish。

apache有多种产品,可以支持ssl技术,支持多个虚拟主机。apache是以进程为基础的结构,进程要比线程消耗更多的系统开销,不太适合于多处理器环境,因此,在一个apache web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止apache仍然是世界上用的最多的web服务器,市场占有率达60%左右。世界上很多著名的yahoo!、w3 consortium、financial times等都是apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的unix、 windows、linux系统平台上)以及它的可移植性等方面。

apache的诞生极富有戏剧性。当ncsa www服务器项目停顿后,那些使用ncsa www服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了apache group,后来这个团体在ncsa的基础上创建了apache。如果你准备选择web服务器,毫无疑问apache是你的最佳选择。

node.js

nnode.js是一个javascript运行环境(runtime environment),发布于2009年5月,由ryan dahl开发,实质是对chrome v8引擎进行了封装。node.js对一些特殊用例进行优化,提供替代的api,使得v8在非浏览器环境下运行得更好。

v8引擎执行javascript的速度非常快,性能非常好。 [1] node.js是一个基于chrome javascript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。node.js 使用事件驱动, 非阻塞i/o 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

服务器干什么用的,服务器的作用与分类介绍

相比起其它流行的web服务器,node.js的不同之处在于它是一个构建网络应用的跨平台运行环境,拥有可胜任异步i/0的事件驱动构架。这些设计选择能够优化应用程序的数据吞吐量和可伸缩性,支持实时通信和网页游戏。 node.js 还强调了web开发堆栈上的差异,node.js清楚地显示作为html、 css或者javascript堆栈的一部分,在这一点上与apache或者nginx同时作为多个不同软件堆栈的一部分的理念正好是相反的。

node.js是在混合授权协议下发布的,更多信息可以查看该项目网站。

在几年的时间里,node.js逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用node.js进行开发,此外,开发人员还可以使用它来开发一些快速移动web框架。

除了web应用外,nodejs也被应用在许多方面,nodejs在其它方面所开发的十大令人神奇的项目,这些项目涉及到应用程序监控、媒体流、远程控制、桌面和移动应用等等。

小贴士

如果你正在寻找一个流行的web服务器,我强烈建议你下载 lamp(linux, apache, mysql, php)或者lemp(linux, nginx, mysql, php)配套堆栈。此外,还可以根据根据你自己的不同喜好,更换搭配多种这样的配套堆栈。这种配套堆栈通常都提供了一键安装支持或者linux上的软件包管理器的安装支持。