Weitere ähnliche Inhalte Ähnlich wie Php Webservers (20) Mehr von thinkinlamp (20) Php Webservers4. Apache Request Circle(1) 1 、 Post-Read-Request 阶段 在正常请求处理流程中,这是模块可以插入钩子的第一个阶段。 对于那些想很早进入处理请求的模块来说,这个阶段可以被利用。 2 、 URI Translation 阶段 Apache 在本阶段的主要工作:将请求的 URL 映射到本地文件系统。 模块可以在这阶段插入钩子,执行自己的映射逻辑。 mod_alias 就是利用这个阶段工作的。 3 、 Header Parsing 阶段 Apache 在本阶段的主要工作:检查请求的头部。由于模块可以在请求 处理流程的任何一个点上执行检查请求头部的任务,因此这个钩子很少被使用。 mod_setenvif 就是利用这个阶段工作的。 5. Apache Request Circle(2) 4 、 Access Control 阶段 Apache 在本阶段的主要工作:根据配置文件检查是否允许访问请求的资源。 Apache 的标准逻辑实现了允许和拒绝指令。 mod_authz_host 就是利用这个阶段工作的。 5 、 Authentication 阶段 Apache 在本阶段的主要工作:按照配置文件设定的策略对用户进行认证, 并设定用户名区域。模块可以在这阶段插入钩子,实现一个认证方法。 6 、 Authorization 阶段 Apache 在本阶段的主要工作:根据配置文件检查是否允许认证过的用户 执行请求的操作。模块可以在这阶段插入钩子,实现一个用户权限管理的方法。 6. Apache Request Circle(3) 7 、 MIME Type Checking 阶段 Apache 在本阶段的主要工作:根据请求资源的 MIME 类型的相关规则,判定 将要使用的内容处理函数。标准模块 mod_negotiation 和 mod_mime 实现了这个钩子。 8 、 FixUp 阶段 这是一个通用的阶段,允许模块在内容生成器之前,运行任何必要的处理流程。 和 Post_Read_Request 类似,这是一个能够捕获任何信息的钩子, 也是最常使用的钩子。 9 、 Response 阶段 Apache 在本阶段的主要工作:生成返回客户端的内容,负责给客户端发送 一个恰当的回复。这个阶段是整个处理流程的核心部分。 7. Apache Request Circle(4) 10 、 Logging 阶段 Apache 在本阶段的主要工作:在回复已经发送给客户端之后记录事务。 模块可能修改或者替换 Apache 的标准日志记录。 11 、 CleanUp 阶段 Apache 在本阶段的主要工作:清理本次请求事务处理完成之后遗留的环境, 比如文件、目录的处理或者 Socket 的关闭等等,这是 Apache 一次请求处理 的最后一个阶段。 11. mpm This Multi-Processing Module (MPM) implements a hybrid multi-process multi-threaded server. By using threads to serve requests, it is able to serve a large number of requests with less system resources than a process-based server. Yet it retains much of the stability of a process-based server by keeping multiple processes available, each with many threads. 14. FastCGI 建立一个 HTTP/Socket ,和 webserver 交互 + Apache/Nginx/lighttpd 17. Start a FastCGI /usr/bin/php-cgi -q -b localhost:9000 (2.1M) /usr/local/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 2 -u www-data -f /usr/bin/php5-cgi (2.4M) 18. Apache + FastCGI 1. Apache mod_fastcgi AddHandler fcgid-script .php Options +ExecCGI FcgidWrapper /usr/local/bin/php-wrapper .php 2. Apache mod_fcgid AddHandler fastcgi-script php 21. Diff 1. Apache && Nginx 输出有 Buffer 堵塞 render 函数 2. Lighttpd 无 buffer 别输出大数据量,比如 echo file_get_contents($bigfile);