当前位置:首页 > Web开发 > 正文

它也预先fork了几个子进程(数量比较少)

2024-03-31 Web开发

标签:

一、处事简介

Apache起初由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发。从此,Apache Httpd被开放源代码团体的成员不停的成长和加强。Apache Http网站处事器拥有牢靠可信的美誉,已经在全球赶过半数的网站中被使用-出格是几乎所有最热门和访谒量最大的网站。比喻说,维基百科网站处事器就是使用Apache的。
刚开始成长时,Apache只是Netscape网页处事器(此刻是Sun ONE)之外的开放源代码选择之一。慢慢地,它开始在成果和速度逾越其他基于Unix的HTTP处事器。到了Apache 2.x的时代,实际效率又比Apache 1.x更快,2.x比1.x能同时处事更多的网页连线数。
1996年4月以来,Apache一直是Internet上最风行的HTTP处事器:1999年5月它在57%的网页处事器上运行,到了2005年7月这个比例上升到了69%。在2005年11月最风景的时候到达接近70%的市占率,不过在部分拥有大量域名的主机域名商转换为微软IIS平台后,Apache市占率近年来泛起些微下滑。同时搜索引擎巨擘Google本身的网页处事器平台GWS推出后(也可说是一种改削版的Apache),再加上nginx、Lighttpd等轻量化网页处事器软件在市场上有一些能见度,这些因素都反响在整体网页处事器市占率的消长,Apache的市占率就随之滑落。
按照Netcraft在2009年12月的最新统计数据,Apache的市占率已经降为53.67%,IIS降为18.26%,谷歌网页处事器13.53%,nginx 8.75%。尽管如此,Apache及其各类分支版本仿照照旧是当前互联网市场上,市占率最高的网页处事器软件。

二、apache事情模式

Apache一共有3种不变的MPM模式(MPM:多进程措置惩罚惩罚模块),它们分袂是 prefork、worker、event。

prefork 事情模式
Apache在启动之初,就预先fork一些子进程,然后期待请求进来。之所以这样做,是为了减少频繁创 建和销毁进程的开销。每个子进程只有一个线程,在一个时间点内,只能措置惩罚惩罚一个请求。
长处:成熟不变,兼容所有新老模块。同时,不需要担忧线程安适的问题。
错误谬误:一个进程相对占用更多的系统资源,消耗更多的内存。而且,它并不擅优点理高并发请求。

worker 事情模式
使用了多进程和多线程的混合模式。它也预先fork了几个子进程(数量对照少),然后每个子进程创建一些线程,同时包孕一个监听线程。每个请求过来,会被分配到1个线程来处事。线程比起进程会更轻量,因为线程凡是会共享父进程的内存空间,因此,内存的占用会减少一些。在高并发的场景下, 因为比起prefork有更多的可用线程,表示会更优秀一些。
长处:占据更少的内存,高并发下表示更优秀。
错误谬误:必需考虑线程安适的问题。

event 事情模式
它和worker模式很像,最大的区别在于,它解决了keep-alive场景下,恒久被占用的线程的资源浪费问题。event 事情模式下,会有一个专门的线程来打点这些keep-alive类型的线程,当有真实请求过来的时候,将请求通报给处事线程,,执行完毕后,又允许它释放。这样增强了高并发场景下的请求措置惩罚惩罚能力。 HTTP给与keepalive方法减少TCP连接数量,但是由于需要与处事器线程或进程进行绑定,导致一个繁忙的处事器会消耗完所有的线程。event 事情模式是解决这个问题的一种新模型,它把处事进程从连接中疏散出来。在处事器措置惩罚惩罚速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限制,此时event 事情模式这种方法是最有效的,但不能在HTTPS访谒下事情。

三、相关文件位置 源码包编译安置 1) 配置文件位置: PREFIX/etc/httpd.conf(主配置文件) PREFIX/etc/extra/*.conf(子配置文件) 2) 网页文件位置: PREFIX/htdocs/ 3) 日志文件位置: PREFIX/logs/ rpm包安置 1) 配置文件位置: /etc/httpd/conf/httpd.conf 2) 网页文件位置: /var/www/html/ 3) 日志文件位置: /var/log/httpd/ 四、配置文件解释 对主机环境的根基配置参数 ServerRoot /usr/local/apache2 #apache根目录 Listen :80 #监听端口 LoadModule php7 #加载的相关模块 User Group #用户和组 ServerAdmin #打点员邮箱 ServerName #处事器名 ErrorLog "logs/error_log #处事器错误日志 CustomLog "logs/access_log" common #访谒记录日志 DirectoryIndex index.html index.php #默认网页文件名,优先级挨次 Include etc/extra/httpd-vhosts.conf #子配置文件中内容也会加载生效 主页目录及权限 DocumentRoot "/usr/local/apache2/htdocs" #网页文件存放目录 <Directory "/usr/local/apache2/htdocs"> #界说指定目录的权限 Options Indexes FollowSymLinks #特别权限,选项如下(默认浏览权限,软连接权限) None #没有任何特别权限 All #所有权限(撤除MultiViews以外) Indexes #浏览权限(当此目录下没有默认网页文件时,显示目录内容) FollowSymLinks #准许软连接到其他目录 MultiViews #准许文件名泛匹配(需要手动开启模块才有效negotiation) AllowOverride None #界说是否允许目录下.htaccess文件中的权限生效,默认不生效 None #.htaccess中权限不生效 All #文件中所有权限都生效 AuthConfig #文件中,只有网页认证的权限生效。 Require all granted(denied) #谁可以访谒该页面下的资源,默认所有都被允许。 </Directory> <IfModule dir_module> #此标签用来指定访谒到指定目录时自动加载哪个页面文件 DirectoryIndex index.php index.html #可以写多个,但是有优先级之分 </IfModule>

apache处事介绍

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/32266.html