`
wbj0110
  • 浏览: 1552358 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

web服务器apache架构

阅读更多

web服务器                                                                               

 

  在开始了解Apache前,我们先熟悉一下web服务器,因为apache也是web服务器的一种。

  Web系统由客户端(浏览器)和服务器端两部分组成。Web系统架构也被称为B/S架构。最常见的Web服务器有Apache、IIS等,常用的浏览器有IE、Firefox、chrome等。当你想访问一个网页时,需要在浏览器的地址栏中输入该网页的URL(Uniform Resource Locator,简称为URL)地址,或者是通过超链接链接到该网页。浏览器会向该网页所在的服务器发送一个HTTP请求,服务器会对接收到的请求信息进行处理,然后将处理的结果返回给浏览器,最终将浏览器处理后的结果呈现给用户。

 

web服务器端的工作流程:

(1)客户端发送请求

  客户端(通过浏览器)和Web服务器建立TCP连接,连接建立以后,向Web服务器发出访问请求(如get)。根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型和请求的URL等一系列信息。

(2)服务器解析请求

  Web服务器对请求按照HTTP协议进行解码来确定进一步的动作,设计的内容有三鼐要点:方法(GET)、文档(/sample.html)、和浏览器使用的协议(HTTP/1.1)其中方法告诉服务器应完动的动作,GET方法的含义很明显是:服务器应定位、读取文件并将它返回给客户。

Web服务器软件现在就知道了,它应该找到文件/sample.html,并使用HTTP/1.1协议将内存返回给客户。信息是经过与请求到来相同的连接发出的,所以服务器不需要定们客户或创建新的连接。

(3)读取其它信息(非必须步骤)

    Web服务器根据需要去读取请求的其它部分。在HTTP/1.1下,客户还应给服务器提供关于它的一些信息。元信息(metainformation)可用来描述浏览器及其能力,以使服务器能据此确定如何返回应答。

(4)完成请求的动作

  若现在没有错误出现,WWW服务器将执行请求所要求的动作。要获取(GET)一个文档,web服务器在其文档树中搜索请求的文件(/sample.html)。这是由服务器机器上作为操作系统一部分的文件系统完成的。若文件能找到并可正常读取,则服务器将把它返回给客户。

如果成功:文件被发送出去。

  首先,web服务器发送一个状态码及一些描述信息。既然文件已经找到,则发送状态码200,表示一切都OK ,文档随后发出,因为发送的信息是HTML文档,所以Content-type 取值为text/html。文档长为1024个字节,所以Content-type 取1024 。服务器软件的标识及文件的时间属性信息也被包含在头域中。

如果失败:返回错误指示。

  如果请求的文件没有找到或找到但无法读取,测请求无法满足。这时将返回不同于200的状态码。最常见的问题是请求中的文件名拼写有误,所以服务器无法找到该文件。这种情况下,服务器将发送一个状态码---404 给客户。

(5)关闭文件和网络连接,结束会话。

当文件已被发邮或错误已发出后,web服务器结束整个会话。它关闭打开的的被请求文件,关闭网络端口从而结束网络连接。有关的其它工作则是由客户端来完成的,包括接收数据,并以用户可读的方式呈现出来。这些与服务器无关。

 

 

apache架构                                                                             

 

  Apache 作为历史最悠久的web服务器,一直是web应用系统的首选,是世界上被广泛应用的web 服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的web服务器端软件之一,也是流行架构LAMP的重要组成部分。

  作为世界上最流行的Web服务器,Apache遵循的同样是HTTP协议,默认端口号为80。下面来是apache 架构图。

Apache 特点:

 

  •   支持最新的HTTP/1.1通信协议。Apache是最先使用HTTP/1.1协议的Web服务器之一,它完全兼容HTTP/1.1协议并与HTTP/1.0协议向后兼容。Apache已为新协议所提供的全部内容做好了必要的准备。
  •   支持多计算机平台。Apache几乎可以在所有的计算机操作系统上运行,包括主流的UNIX、Linux及Windows操作系统。
  •   配置文件简单,易操作。用户可以通过直接修改Apache的配置文件信息来修改Apache,操作起来十分方便。
  •   支持实时监视服务器状态和定制服务器日志。Apache在记录日志和监视服务器自身运行状态方面提供了很大的灵活性,可以通过Web浏览器来监视服务器的状态,也可以根据自己的需要来定制日志。
  •   支持多种方式的HTTP认证。
  •   支持Web目录修改。用户可以使用特定的目录作为Web目录。
  •   支持CGI脚本,如Perl、PHP等。
  •   支持服务器端包含指令(SSI)。
  •   支持安全Socket层(SSL)。
  •   支持FastCGI。
  •   支持虚拟主机。即通过在一台服务器上使用不同的主机名来提供多个HTTP服务。Apache支持基于IP、主机名和端口号三种类型的虚拟主机服务。
  •   跟踪用户会话。当用户浏览基于Apache的Web站点时,可以通过Apache的mod_usertrack模块对其进行跟踪。
  •   支持动态共享对象。Apache的模块可在运行时动态加载,这就意味着这些模块可以被装入服务器进程空间,从而减少系统的内存开销。
  •   支持多进程。当负载增加时,服务器会快速生成子进程来处理,从而提高系统的响应能力。
  •   支持第三方软件开发商提供的功能模块。比如Apache加载mod_jserv模块后可以支持Java Servlet,这样就可以运行Java应用程序了。
  •   支持多线程和多进程混合模型的MPM。 当MPM类型指定为worker时,由于是使用线程来处理,所以可以处理海量的请求,而系统资源的开销要小于基于进程的服务器。

 

Apache 工作模拟                                                    

 

  Apache 2.X  支持插入式并行处理模块,称为多路处理模块(MPM)。在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们会影响到apache的速度和可伸缩性。

  Worker MPM 使用多个子进程,每个子进程中又有多个线程。每个线程处理一个请求,该MPM通常对高流量的服务器是一个不错的选择。因为它比prefork MPM需要更少的内存且更具有伸缩性。

  Prefork MPM : 使用多个子进程,但每个子进程不包含多线程。每个进程只处理一个连接。在许多系统上它的速度和worker MPM一样快,但是需要更多的内存。这种无线程的设计在某些性况下优于worker MPM,因为它可在应用于不具备线程安全的第三方模块上(如 PHP3/4/5),且在不支持线程调试的平台上易于调试,另外还具有比worker MPM更高的稳定性。 

   (后面会介绍如果这两种模式以及apache更多的设置与监控等)

分享到:
评论

相关推荐

    2-2_基于Apache的WEB服务器架构

    2-2_基于Apache的WEB服务器架构

    服务器架构ppt.pptx

    主要内容 WebFOCUS基本体系 WebFOCUS web层 WebFOCUS Reporting Server概述 WebFOCUS Client概述 WebFOCUS Report Caster概述 WebFOCUS Adapter概述 服务器架构ppt全文共17页,当前为第2页。 WebFOCUS ...

    实战Nginx:取代Apache的高性能Web服务器

    本书系统地介绍了nginx与php、ruby、python结合的使用方法,nginx作为反向代理与负载均衡的配置与优化,以及nginx模块的开发...本书适合nginx的初学者,以及有一定基础,希望深入掌握nginx的网站架构师和web开发人员。

    基于Red Hat Linux 9的Apache Web服务器的构建.pdf

    基于Red Hat Linux 9的Apache Web服务器的构建.pdf

    实战Nginx:取代Apache的高性能Web服务器 中文版

    nginx是俄罗斯人igor sysoev编写的一款高性能的http和反向代理服务器。nginx选择了epoll和kqueue作为网络i/o模型,在高连接...本书适合nginx的初学者,以及有一定基础,希望深入掌握nginx的网站架构师和web开发人员。

    Web服务器的配置与管理.pptx

    目前,主流的提供Web服务器支持的架构分别是主要应用于UNIX系统的Apache、Nginx和应用于Windows Server系统的 IIS。 Web服务器概述 1.1 Web服务器的配置与管理全文共22页,当前为第2页。 www.1ppt.com Web服务器的...

    Linux Apache Web服务器上的ASP实现方案.pdf

    Linux Apache Web服务器上的ASP实现方案.pdf

    kangle web服务器.zip

    kangle web服务器软件 是一款内置asp/asp.net支持,易操作管理的高性能web服务器和反向代理服务器。 主要特性: 为虚拟主机提供独立进程服务; 虚拟主机独立运行身份; Windows版内置Asp、Asp.net 支持; ...

    Apache反向代理WebLogic

    而大多数采用的是开源的WEB服务器(Apache)。架构方式是将Apache置于前端作为WebLogic的代理,减少WebLogic的负载压力。而位于前端Apache的负载均衡怎样解决呢?一般是采用DNS轮询来实现。这样做的好处是,不单解决...

    lnmp胜与LAMP十倍的web服务器架构

    Nginx_0.8.x_+_PHP_5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器,在centos下配置mail服务器及memcache 服务器

    实战Nginx.取代Apache的高性能Web服务器.2010 pdf

    Nginx选择了epoll和kqueue作为网络I/O模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达50 000个并发连接数的响应,运行稳定,且内存、CPU等系统资源消耗非常低。  本书主要分为4个...

    高性能高并发服务器架构

    高性能高并发服务器架构 ...Lighttpd+Squid+Apache搭建高效率Web服务器 浏览量比较大的网站应该从哪几个方面入手? 用负载均衡技术建设高负载站点 大型网站的架构设计问题 开源平台的高并发集群思考

    apache-tomcat-6.0.9

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为 Web服务器的一些特有功能,如Tomcat管理...

    基于Linux系统下Apache软件的Web服务器设置.pdf

    基于Linux系统下Apache软件的Web服务器设置.pdf

    windows+apache+mysql+php架构部署

    Windows 是目前世界是使用最多的操作系统,Apache 自1996 年4 月起就一直是世界上最爱欢迎的Web 服务器,最新Netcraft Web 服务器问卷调查的结果显示,全世界的 Web 站点中有超过50%都在使用Apache Web 服务器。...

    Linux Apache服务器.doc

    Linux web/apache服务部署、配置的详细过程讲解 讲解虚拟目录、个人主页、Apache实现基本认证、虚拟主机、实现LAMP架构、个人论坛搭建等。

    Linux Apache Web服务器安全的8种安全设置技巧

    Apache服务器是一款开源的WEB服务器,是由非营利组织Apache软件基金会的支持的,我们很多的虚拟主机、VPS等都会使用Apache服务器架构环境,但是任何的架构环境都会遭受各种可能的攻击、安全漏洞的检测、SQL注入、...

    网站架构及高性能并发服务器设计

     Lighttpd+Squid+Apache搭建高效率Web服务器 9  浏览量比较大的网站应该从哪几个方面入手? 17  用负载均衡技术建设高负载站点 20  大型网站的架构设计问题 25   开源平台的高并发集群思考 26  大型、...

    lamp(Linux+Apache+Mysql+Perl/PHP/Python)论文

    Linux+Apache+Mysql+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。...

Global site tag (gtag.js) - Google Analytics