首页 > Web开发 > 详细

apache 工作过程和模式

时间:2018-01-20 17:42:09      阅读:224      评论:0      收藏:0      [点我收藏+]

常见web程序服务器(静态网站服务器)
应用程序服务器(能直接读取网站动态元素) IIS tomcat,jetty,jboss,resin
webshpere
seblogic,oc4 //orcale



一个完整的http请求过程 //网络通信就是进程之间的通信
1 建立或处理链接; 接受请求或者拒绝请求
2接受请求
接受来自王珞丹请求报文中对某一资源的一次请求过程


并发访问相应模型
一:单线程I/O结构 // 一个请求断开才能接受下一个请求,多个请求被串行响应,一次只能处理一个; 串行相应体系
二 : 多线程IO结构 // 并行启动多个进程,每个进程相应一个请求;
三 : 复用I/O : 一个进程响应n个请求 //基于事件驱动
多线程模型: 一个进程生成多个线程,每个线程响应一个用户的请求
事件驱动
:复用的多进程I/O结构: 启动多个(m) 进程,每个进程响应n个请求;


3 处理请求: 多请求报文进行解析,并获取请求的资源及请求方法等相关信息

元数据: 请求报文首部
host: 请求的主机
<methoud> <URL> <VERSION>
Host: www.baidu.com 请求主机名字
Connection:



4 访问资源: 获取请求报文中的请求资源:
web服务器,即存放了web资源的服务器,负责向请求者返回请求的资源
,或动态运行后生成的资源,这些资源放置于本地文件系统某路径下,此路径通常叫DocRoot
/var/www/html
也就是web服务器的家目录
web服务器资源路径映射方式
a: docroot
b: alias
c: 虚拟主机docroot
d: 用户家目录docroot

5 构建响应报文
构建相应报文的前提是找了资源,并允许用户访问
资源的MIME类型:
显示分类
魔法分类
协商分类
URL重定向 //对请求的url重写,访问改变之后的url
永久重定向
临时重定向




6发送响应报文


7 记录日志



a patchy server = apache
ASF: apache software doundation 阿帕奇基金会

httpd的特性:
高度模块化: core + modules
DOS: dynamic shared object理模块
MPM: multipath processing modules 多路处理模块。该模块有三种工作模式 Prefork MPM,Work MPM,Event MPM块
prefork : 多进程模型,每个进程相应一个请求;
一个主进程(不负责处理用户请求),负责生成n个子进程,子进程也成为工作进程,每个子进程处理一个用户的请求: 即便么有用户请求,也会预先生成多个空闲进程(提高效率),随时等待客户请求;最大不会超过1024个(由此限制不能实现高并发);
这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。

 Worker MPM : 此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。
  每个进程可以拥有的线程数量是固定的。服务器会根据负载情况增加或减少进程数量。一个单独的控制进程(父进程)负责子进程的建立。每个子进程可以建立ThreadsPerChild数量的服务线程和一个监听线程,该监听线程监听接入请求并将其传递给服务线程处理和应答。
 
  不管是Worker模式或是Prefork 模式,Apache总是试图保持一些备用的(spare)或者是空闲的子进程(空闲的服务线程池)用于迎接即将到来的请求。这样客户端就不需要在得到服务前等候子进程的产生。

Event MPM:以上两种稳定的MPM方式在非常繁忙的服务器应用下都有些不足。尽管HTTP的Keepalive方式能减少TCP连接数量和网络负载,但是 Keepalive需要和服务进程或者线程绑定,这就导致一个繁忙的服务器会耗光所有的线程。 Event MPM是解决这个问题的一种新模型,它把服务进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限 制,此时Event MPM方式是最有效的。一个以Worker MPM方式工作的繁忙服务器能够承受每秒好几万次的访问量(例如在大型新闻服务站点的高峰时),而Event MPM可以用来处理更高负载。值得注意的是,Event MPM不能在安全HTTP(HTTPS)访问下工作

apache 工作过程和模式

原文:https://www.cnblogs.com/liuxiaojia/p/8321269.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!