`
wbj0110
  • 浏览: 1604253 次
  • 性别: 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更多的设置与监控等)

分享到:
评论

相关推荐

    apache架构设计原理剖析

    Apache HTTP服务器是世界上最广泛使用的开源Web服务器之一,它的设计原则和实现方式对于理解Web架构和优化网站性能至关重要。本篇将深入探讨Apache架构的基础、设计原理,以及与RESTful架构的结合。 一、HTTP基础 ...

    web服务器apache版精华

    这个“web服务器Apache版精华”主题包含了一系列关于如何有效利用Apache服务器的关键知识点。Apache以其开源、免费、跨平台和高度可定制性而受到全球开发者的广泛青睐。在本文中,我们将深入探讨Apache服务器的核心...

    web服务器apache+mysql+php

    在【标题】中提到的 "web服务器apache",是指使用 Apache 作为 Web 服务器的基础平台。 【MySQL 数据库】 MySQL 是一款关系型数据库管理系统(RDBMS),它以高效、稳定和易于管理而著名。在 Web 应用场景中,MySQL...

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

    在"基于Apache的WEB服务器架构"的学习情境中,我们首先了解如何安装Apache服务器。安装Apache有多种方法: 1. 通过Linux发行版的默认安装程序,如在安装Red Hat Linux时选择HTTPD服务,系统会自动完成安装并进行...

    基于Linux的重负载Web服务器的架构.pdf

    作为网络服务的基础,Linux内置的Web服务器解决方案,尤其是Apache Web服务器,已经成为了许多企业的首选。随着互联网应用的普及,企业对Web服务器的需求不仅限于基本功能,而是越来越注重在高负载环境下的稳定性和...

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

    Nginx的这些特点使得它非常适合用于高负载的环境,因此越来越多的网站开始使用Nginx来取代传统的Web服务器软件,如Apache。 Apache同样是开源的Web服务器软件,曾经是互联网上最流行的服务器解决方案。但随着互联网...

    Linux下Tomcat与Apache Web服务器整合

    【Linux下Tomcat与Apache Web服务器整合】 在互联网和企业网络应用中,Web技术占据了核心地位,TCP/IP协议和Web服务器是实现这一目标的关键组成部分。Linux操作系统因其稳定性和开源特性,成为了众多企业和开发者的...

    实战Nginx:取代Apache的高性能Web服务器+张宴.扫描版

    《实战Nginx:取代Apache的高性能Web服务器》是一本深度探讨Nginx技术的书籍,作者张宴通过丰富的实践经验和深入的技术解析,为读者揭示了Nginx作为高性能Web服务器的优势及其应用策略。这本书主要涵盖了以下几个...

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

    基于Red Hat Linux 9的Apache Web服务器的构建 一、引言 WWW(World Wide Web)服务是Internet上最热门的服务之一。如果您想通过网站向世界介绍自己或自己公司,就必须将其放在一个Web服务器上。Linux操作系统是构建...

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

    ### 实战Nginx:取代Apache的高性能Web服务器 #### Nginx简介 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发。自2004年公开发布以来,...

    Apache 桌面手册 web 服务器

    Apache是世界上最广泛使用的开源Web服务器,它以其稳定性、可扩展性和灵活性著称。这份"Apache桌面手册Web服务器"旨在提供全面的Apache服务器管理和配置指南,帮助用户深入理解并有效地运用这个强大的工具。 Apache...

    apache 当今世界最流行的web服务器

    总而言之,Apache Web服务器凭借其强大的功能、灵活的配置、广泛的平台支持以及活跃的社区,成为了互联网世界的基石。无论是个人博客、企业网站还是大型电子商务平台,都可以依赖Apache提供高效、安全的Web服务。...

    ihswebsphere多集群多端口web服务器架构.doc

    ihswebsphere多集群多端口web服务器架构 本文将详细介绍ihswebsphere多集群多端口web服务器架构的配置经验。该架构主要是为了满足高可用性和高性能的应用系统需求,通过采用IHS和WAS6ND来实现多应用服务器集群和多...

    [实战Nginx_取代Apache的高性能Web服务器].张宴.扫描版-new2

    ### 实战Nginx:取代Apache的高性能Web服务器 #### Nginx简介 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发。自2004年公开发布以来,...

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

    Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,因其高效稳定和低内存占用而备受青睐。在互联网行业中,Nginx经常被用来替代传统的Apache服务器,以应对高并发访问和大型网站的需求。本教程将深入探讨Nginx...

    web服务器.rar

    Web服务器是一种运行在互联网上的特殊软件,用于接收HTTP(超文本传输协议)请求,...通过阅读压缩包中的文件,你可以了解易语言Web服务器的架构、配置方法、编程接口以及示例代码,从而开始实践和定制自己的Web服务。

    三大WEB服务器对比分析(apache-apache-nginx)

    ### 三大Web服务器对比分析:Apache、Lighttpd与Nginx #### 一、概述 随着互联网技术的发展,Web服务器成为了构建网站不可或缺的核心组件之一。本文将对三种流行的Web服务器——Apache、Lighttpd与Nginx进行深入...

    基于linux的web服务器的设计与实现.pdf

    Apache服务器是其中最常用的Web服务器之一, Apache服务器的配置和实现是Web服务器设计的关键部分。 DHPC配置也是Web服务器设计中一个重要的方面。 本文详细分析了基于Linux的Web服务器的设计与实现,主要是Apache...

Global site tag (gtag.js) - Google Analytics