• php底层深度探索(2)Apache运行机制剖析 王泽宾


    二、Apache运行机制剖析

    l         B/S交互过程

    浏览器和服务器一次交互的过程如图:

     

    1、 浏览器(Browser)向服务器(Web Server)发出HTTP请求(Request)

    2、 服务器(Web Server)分析浏览器的请求,输出响应数据(Response)。

    3、 浏览器(Browser)收到响应数据后进行解析,最后显示在浏览器中。

    下面是一份浏览器的请求数据和服务器的响应数据:

     


     

    以上内容非常简单,我想Web开发人员都很清楚这个过程,在此不再赘述。

     

    l         Apache概述

    Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效、稳定而闻名,按照官方统计的数据,Apache服务器的装机量大约占据该市场60%以上的份额,尤其是在XUnix/Linux)平台上最为普遍。另外的一些Web Server产品,比如IIS只能运行在Windows平台上,大多结合微软的.Net技术机构一起使用。Apache最为诟病的一点是越来越重,被认为是重量级的WebServer,所以后来又出现了很多轻量级的替代产品,比如lighttpd,nginx,它们的共同特点就是效率显著提高,但又往往只用于某些特定场合。

     

    l         Apache组件逻辑图

    Apache是基于模块化设计的,核心代码其实并不多。你如果想要阅读Apache的源代码,建议你直接从core.c文件读起,主要的处理逻辑都包含在里面。Apache大多数的功能都被分散到各个模块中,系统启动的时候按需载入。MPMMulti -Processing Modules,多重处理模块)是Apache的核心组件,Apache通过MPM使用操作系统的资源,管理进程/线程池。另外,Apache为了能够获得最好的运行性能,他针对不同的平台(Unix/LinuxWindow)做了优化,提供不同的MPM,其中最为常见的有preforkworker两种。您的服务器跑的是哪种方式,取决于安装Apache过程中指定的编译参数。在X系统上默认编译为prefork模式。由于大多数的Unix都不支持真正的多线程,所以采用预派生子进程(prefork)方式,worker是一种基于多进程多线程混合的模式。对此感兴趣的同学可以阅读有关资料,此处不再多讲。

     

    Apache的逻辑构成以及与操作系统的关系

    APRApache portable Runtime Library),即Apache可移植运行库,是一个抽象库用来实现Apache内部组件对操作系统的使用。Apache对于php的解析,就是通过图中所标的php Module完成的。

    l         Apache的生命周期

    这一节的内容会与php模块的载入有关,您可以略微关注一下。以下图形用来说明Apache的生命周期(prefork模式)

     

     

     


  • 相关阅读:
    web实现rtmp推流拉流(vue + nginx)
    css邊框
    通过IIS操作修改服务器文件没有权限的解决办法
    C#、ASP.NET、WinForm
    阿里云 ECS实例诊断与修复工具,将问题解决周期从24小时缩短至分钟级
    Gartner发布云产品评估报告:阿里云计算能力全球第一
    晓生:这个朋友我交定了!
    从 VMWare 到阿里神龙,虚拟化技术 40 年演进史
    如何在公有云上部署私有云?阿里云专有宿主机轻松搞定
    RHEL6.4安装出现“sda must have a GPT disk label ”解决方法
  • 原文地址:https://www.cnblogs.com/wanghao72214/p/1390127.html
Copyright © 2020-2023  润新知