Web 服务器(一)

一、Web服务器介绍

1**、WEB服务简介**

  • 目前最主流的三个Web服务器是Apache、Nginx、 IIS。

  • Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等

  • Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下 载。

  • WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 Web 服务器是可以向发出请求的浏览器提供文档的程序:

  • 服务器是一种被动程序只有当Internet上运行其他计算机中的浏览器发出的请求时,服务器才会响应。

  • 最常用的Web服务器是Apache,Nginx和Microsoft的Internet信息服务器(Internet Information Services,IIS)。

  • Internet上的服务器也称为Web服务器,是一台在Internet上具有独立IP地址的计算机,可以向 Internet上的客户机提供WWW、Email和FTP等各种Internet服务。

  • Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上 并请求文件时,服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流, 这就是人们常把它们称为HTTP服务器的原因。

  • Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程 序。

2**、WEB服务协议**

  • WEB 服务应用层使用HTTP协议。
  • HTML(标准通用标记语言下的一个应用)文档格式。
  • 浏览器统一资源定位器(URL)。
  • 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为 了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份, 并为浏览器和服务器之间的通信加密。WWW 采用的是浏览器/服务器结构,其作用是整理和储存 各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到 Windows、UNⅨ 或 Linux 等平台上.

3**、web服务器与应用服务器的区别**

  • Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程 序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求 (request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑 (business logic)。
  • Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会 返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request), Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态 响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本, JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(serverside)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目 的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览 器可以浏览。
  • Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务 器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序。Web 服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应 (response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理 (transaction processing),数据库连接(database connectivity)和消息(messaging)等功 能。
  • 虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略 (strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering---features)经常被误认为仅仅是应用程 序服务器专有的特征。

4**、WEB服务器的工作原理**

Web 服务器的工作原理并不复杂,一般可分成如下 4 个步骤:连接过程、请求过程、应答过程以及闭连接。

  1. 连接过程:Web服务器和其浏览器之间所建立起来的一种连接。查看连接过程是否实现,用户可以 找到和打开socket这个虚拟文件,这个文件的建立意味着连接过程这一步骤已经成功建立。
  2. 请求过程:Web的浏览器运用socket这个文件向其服务器而提出各种请求。
  3. 应答过程:运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所 请求之界面。
  4. 关闭连接:当上一个步骤--应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。

Web 服务器上述 4 个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。

二、ApacheNginx的介绍

1**、Apache介绍**

  • Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台 上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

  • Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。 Apache取自"a patchy server"的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断 有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

  • 目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著 名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成 功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所 有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

  • Apache 的特性:

    几乎可以运行在所有的计算机平台上.
    支持最新的http/1.1协议、
    简单而且强有力的基于文件的配置(httpd.conf).
    支持通用网关接口(cgi)
    支持虚拟主机.
    支持http认证.
    集成perl.
    集成的代理服务器
    可以通过web浏览器监视服务器的状态, 可以自定义日志.
    支持服务器端包含命令(ssi).
    支持安全socket层(ssl).
    具有用户会话过程的跟踪能力.
    支持fastcgi
    支持java servlets

2**、nginx介绍**

  • nginx是俄罗斯人编写的十分轻量级的HTTP服务器,它的发音为"engine X", 是一个高性能的HTTP 和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 IgorSysoev为俄罗斯访问量第二的 Rambler.ru站点开发.

  • Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平 衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的 mod_proxy也有一些问题并且很久没有更新。但是Nginx并不支持cgi方式运行,原因是可以减少 因此带来的一些程序上的漏洞。所以必须使用FastCGI方式来执行PHP程序。

  • nginx做为HTTP服务器,有以下几项基本特性:

    处理静态文件,索引文件以及自动索引;打开文件描述符缓冲.
    无缓存的反向代理加速,简单的负载均衡和容错.
    FastCGI,简单的负载均衡和容错.
    Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模
    型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数
    Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连
    接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当
    前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶
    段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动
    的连接,它只占2.5M内存,所以类似DOS这样的攻击对nginx来说基本上是毫无用处的。就
    稳定性而言,nginx比lighthttpd更胜一筹。
    Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月
    也不需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。

3**、ApacheNginx对比**

  • Nginx 相对于Apache:

    高并发响应性能非常好。(单台万级并发连接30000-50000/s(简单静态页))
    反向代理性能非常好。(可用于负载均衡)
    内存 和 cpu 占用率低。(为Apache的1/5-1/10)
    功能较 Apache 少(常用功能均有)
    对 php 可使用 cgi 方式和 fastcgi 方式,没有模块编译加载方式

4**、ApacheNginx总结**

  • Apache 拥有丰富的模块组件支持,稳定性强,BUG少,动态内容处理强。

  • Nginx 轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效。

    中间件介绍
    tomcat
    weblogic
    jboss
    php
    uwsgi

相关推荐
hao_wujing2 分钟前
网络安全等级自我评价
安全·web安全
努力的小T8 分钟前
Linux apt-mirror 同步搭建本地源详解教程
linux·运维·服务器·ubuntu·云计算·debian
自律的kkk9 分钟前
mysql基础快速入门
java·数据库·mysql·oracle
代码小将11 分钟前
PTA数据结构编程题7-1最大子列和问题
数据结构·c++·笔记·学习·算法
HackKong16 分钟前
高校网络安全_网络安全之道
java·网络·c++·python·学习·web安全·黑客技术
Mitch31118 分钟前
【漏洞复现】CVE-2014-3120 & CVE-2015-1427 Expression Injection
运维·web安全·elasticsearch·docker·apache
半夏知半秋30 分钟前
lua debug相关方法详解
开发语言·学习·单元测试·lua
路飞雪吖~30 分钟前
【Linux】编写简易shell && 深度理解命令行解释器 && 环境变量 && 内建命令
linux·运维·服务器
滴_咕噜咕噜33 分钟前
学习笔记 --C#基础其他知识点(持续更新)
笔记·学习·c#
神奇侠20241 小时前
基于Centos7.X系统端口占用处理
linux·运维·服务器