三种常见的Web服务器运行环境

2020-01-13 14:48 标签: Web服务器运行环境

Web服务器是一台使用HTTP协议与客户机浏览器进行信息交流(因此又称为HTTP服务器)、为互联网客户提供服务(信息浏览,下载资源等)的主机。发展趋势:从HTML到XML、从有线到无线、从无声到有声。

Web服务器的工作原理一般可分成如下4个步骤:

①连接过程:是Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以找到和打开socket这个虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。

②请求过程:是Web的浏览器运用socket这个文件向其服务器而提出各种请求。

③应答过程:是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。

④关闭连接:是当上一个步骤--应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。

Web服务器仅仅提供一个可以执行服务器端程序和返回(程序所产生的)响应的环境,而不会超出职能范围。服务器端程序功能通常有:事务处理、数据库连接、和消息等。虽然Web服务器不支持事务处理或数据库连接池,但它可以配置各种策略来实现容错性、可扩展性(如:负载平衡、缓冲)。集群特征经常被误认为仅仅是应用程序服务器专有的特征。

主流Web服务器

Unix/Linux/Windows/MacOS等操作系统下使用最广泛的免费HTTP服务器:Apache、Nginx、Tomcat,WindowsServer系列操作系统使用IIS,综合使用最多的Web服务器是Apache。

什么是IIS

IIS全程为InternetInformationService(Internet信息服务),它的功能是提供信息服务,如架设http、ftp服务器等,是WindowsNT内核的系统自带的,不需要下载。

其语言版本与系统安装盘的语言是一样的,即中文版的NT内核的操作系统自带ISS中文版的ISS。版本在不同的系统中是不一样的。WinNT中为4.0,Win2000中为5.0,WinXP中为5.1,Win2003中为6.0,win2008r2为iis7.5,win2012为iis8不同版本功能不太一样。

IIS是随WindowsNTServer4.0一起提供的文件和应用程序服务器,是在WindowsNTServer上建立Internet服务器的基本组件。它与WindowsNTServer完全集成,允许使用WindowsNTServer内置的安全性以及NTFS文件系统建立强大灵活的Internet/Intranet站点。

什么是Apache

Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。

ApacheHTTPServer(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。

ApacheHTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。

它可以运行在几乎所有广泛使用的计算机平台上。

什么是Nginx

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。

Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接

高度的模块化和自由软件许可证是的第三方模块层出不穷(这是个开源的时代啊~)

Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris,AIX,MacOS等操作系统上

这些优秀的设计带来的极大的稳定性!

什么是Tomcat

tomcat是一个中间件,在B/S架构中,浏览器发出的http请求经过tpmcat中间件,转发到最终的目的服务器上,响应消息再通过tomcat返回给浏览器。

tomcat所做的事情主要有:开启监听端口监听用户的请求,解析用户发来的http请求然后访问到你指定的应用系统,然后你返回的页面经过tomcat返回给用户。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。

对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。

优势对比

不存在差劲的服务器,只是应用场景不对

先说IIS,如果成本是你的首要考虑,LAMP组合制定将更便宜,因为没有许可费用。其中,考虑到安全性,apache被普遍认为是更安全的选择。如果你想运行Windows操作系统服务器上其他任何东西,IIS显然不是好的选择。但是,如果你想运行依赖于ASPX的脚本,那么你需要去选择IIS,因为它比LAMP出现故障时候更容易去排除。

再说到Apache和Nginx,一般来说,需要性能的web服务,用nginx。如果不需要性能只求稳定,那就apache吧。后者的各种功能模块实现得比前者,例如ssl的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd上是kqueue)网络IO模型是nginx处理性能高的根本理由,但并不是所有的情况下都是epoll大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache的select模型或许比epoll更高性能。当然,这只是根据网络IO模型的原理作的一个假设,真正的应用还是需要实测了再说的。

以下是我的总结:

1、作为Web服务器:相比Apache,Nginx使用更少的资源,支持更多的并发连接,体现更高的效率,这点使Nginx尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一.能够支持高达50000个并发连接数的响应,感谢Nginx为我们选择了epollandkqueue作为开发模型.

Nginx作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP程序对外进行服务,也可以支持作为HTTP代理服务器对外进行服务.Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好很多.

2、Nginx配置简洁,Apache复杂,Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动.你还能够不间断服务的情况下进行软件版本的升级.Nginx静态处理性能比Apache高3倍以上,Apache对PHP支持比较简单,Nginx需要配合其他后端来使用,Apache的组件比Nginx多.

3、最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程.

4、nginx的优势是处理静态请求,cpu内存使用率低,apache适合处理动态请求,所以现在一般前端用nginx作为反向代理抗住压力,apache作为后端处理动态请求。

热门文章 企业服务器日常维护有哪些事项 网站服务器性能优化 租用网站服务器需要先了解下这六项 如何快速分析网站服务器日志 四种网站服务器数据备份方式
行业资讯 Industry Information

关于我们

About Us