




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
李明珠 基于Linux的Apache服务器的构建 第27页 共27页 基于Linux的Apache服务器的构建学生姓名:李明珠 指导老师:侯利娟摘 要 Apache是世界排名第一的Web服务器,根据著名的Web服务器调查公司Netcraft的调查,世界上百分之五十以上的Web服务器都在使用Apache。Apache 服务器拥有牢靠可信的美誉,已用在超过半数的因特网站中特别是几乎所有最热门和访问量最大的网站。Apache服务器一个主要的特点是完全免费,并且完全公开其源代码,由此用户可根据自身的需要去进行相关模块的开发。Apache服务器另一个主要的特点是其跨平台性,它可以在UNIX、Windows、Linux等多种操作系统上运行。如果需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。另外Apache支持许多特性,大部分通过编译的模块实现。Apache使用新的多处理模块(Multi-processing Module,MPM),使用此模块会在服务器会在服务器处理多个请求时,控制Apache的运行方式。关键词 Apache; Web服务器Linux-based Apache server ofStudent name: LI Ming-zhu Advisor:Hou li-juanAbstract Apache is the worlds number one Web server, according to leading research firm Netcraft Web server survey, over half of the worlds Web servers use Apache. Apache server has a solid reputation as reliable, has been used in more than half of Internet sites - in particular, almost all of the most popular and most visited website. One of the main features of Apache server is completely free and fully open its source code, so that users can carry out according to their own needs to the development of relevant modules. Apache server is another major feature is its cross-platform nature, it can be UNIX, Windows, Linux and other operating systems. If you need to create millions of people a day visit to the Web server, Apache may be the best choice. Apache also supports many features, most of the module by compiling. Apache using the new multi-processing module (Multi-processing Module, MPM), use this module on the server will handle multiple requests in server, control Apache runs.Keywords Apache; Web server目录1 引言41.1课题背景41.2 Apache服务器研究的目的52 Apache服务器的可行性分析72.1技术可行性72.2服务器配置的工作量82.3服务器配置时间82.4服务器配置需求83 Apache服务器的安装和配置93.1 安装和启动Apache服务器93.2 Apache服务器的配置93.3 配置虚拟主机144 测试虚拟主机194.1 编辑HTML测试文档194.2 测试主机215 异常处理246结束语26致 谢27参考文献281 引言1.1课题背景Web服务是Internet网络发展最大的动力,Web网页可以把文字、图像、声音以及视频影像等各种媒体信息高度整合,并且使用一种超链接的方式使人们可以进行一种跳跃式的信息查询和浏览。Web信息的浏览是采用客户/服务器方式进行的,客户端使用浏览器,而服务器端使用的是Web服务器。Apache是世界排名第一的Web服务器,根据著名的Web服务器调查公司Netcraft的调查,世界上百分之五十以上的Web服务器都在使用Apache。Apache这个词在不同的领域所给出的解释是不一样的。在种族名称上,Apache是美洲大陆上的一个印地安种族的名称;在军事名称上,Apache还是一种火力强大的攻击型直升机的名称;那在信息领域Apache服务器的由来是什么样的?Apache的原始核心取自NCSA(National Center for Supercomputing Applications) http服务器,后来加上由各方所提供的补丁文件而成,此种组合让这套HTTP服务器被人们戏称为“A Patchy Server”,意思是“一个修修补补”的服务器。而“A Patchy”和“Apache”谐音,后来就慢慢演变成Apache,并正式命名。Apache 起初由 Illinois 大学 Urbana-Champaign 的国家高级计算程序中心开发。此后,Apache 被开放源代码团体的成员不断的发展和加强。Apache 服务器拥有牢靠可信的美誉,已用在超过半数的因特网站中特别是几乎所有最热门和访问量最大的网站。 开始,Apache只是Netscape网页服务器(现在是Sun ONE)的之外的开放源代码选择。渐渐的,它开始在功能和速度。超越其他的基于Unix的HTTP服务器。1996年4月以来,Apache一直是Internet上最流行的HTTP服务器: 1999年5月它在 57% 的网页服务器上运行;到了2005年7月这个比例上升到了69%。 Apache服务器一个主要的特点是完全免费,并且完全公开其源代码,由此用户可根据自身的需要去进行相关模块的开发。Apache服务器另一个主要的特点是其跨平台性,它可以在UNIX、Windows、Linux等多种操作系统上运行。如果需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。另外Apache支持许多特性,大部分通过编译的模块实现。这些特性从服务器端的编程语言支持到身份认证方案。一些通用的语言接口支持Perl,Python, Tcl, 和 PHP。流行的认证模块包括 mod_access, mod_auth 和 mod_digest。其他的例子有 SSL 和 TLS 支持 (mod_ssl), proxy 模块,很有用的URL重写(由 mod_rewrite 实现),定制日志文件 (mod_log_config),以及过滤支持(mod_include 和 mod_ext_filter)。Apache日志可以通过网页浏览器使用免费的脚本AWStats或Visitors来进行分析。PC Magazine2004年8月评出了近30年以来的10款最佳软件产品。他们其中或者是有过最辉煌的历史,或者是最具创意。其对apache的评价是:第三名:Apache(阿帕奇,1995年推出)Apache目前已经演变成了“LAMP”,即Linux、Apache、MySQL和PHP的联合体。这是一个开放源代码软件项目,已经对微软的“.NET”战略构成严重威胁。尤其是Apache网络服务器,让用户充分体验到开发源码软件的稳定性、可靠性和可定制性。 A评价apache时说:Apache是服务器软件始终不断进化的大块部件,它免费但又是无价之宝。Apache 是在资源开放运动中出现的绝对珍品,因为不属于个人专利而是对公共免费。一旦拥有这些源码,程序员能够自由完成所想能在其它程序员接替工作时被赋予同样的权限来改变和修改自己的源代码。 1.2 Apache服务器研究的目的目前网站服务器的虚拟主机平台使用以开放的Apache为最多,其次是微软的Windows IIS。Apache具有跨平台(FreeBSD/Linux/Windows/Solaris/Other UNIX)、易于维护与最佳安全性等优点。本课题将达到以下几个目的:(1)提高性能选择Web服务器时,其功能和运行性能是最重要的因素。Apache的众多特性保证了它可以高效而且稳定的运行。其性能主要表现在如下几个方面:实现了动态共享对象(DOS),允许在运行时动态装载功能模块;采用预生成模式的技术提高响应速度;可以运行在几乎所有计算机平台;支持最新的HTTP1.1协议、HTTP认证、虚拟主机、安全Socket层(SSL)、服务器端包含命令(SSI)、通过网关接口CGI、FastCGI、PHP、Java Servlets等,并支持第三方软件开发商提供的大量功能模块;简单而且强有力的基于文件的配置;集成了代理服务器;具有可定制的服务器日志;用户会话过程的跟踪能力;支持通过网关接口CGI;集成Perl脚本编程语言;(2)提供更好的服务Apache中添加了附加功能层,最基本的组件是可移植运行环境(Apache Portable Runtime,ARP),提高了Apache的跨平台性能;另外,Apache使用新的多处理模块(Multi-processing Module,MPM),使用此模块会在服务器会在服务器处理多个请求时,控制Apache的运行方式。Apache中的预派生MPM、工作者MPM、独立子进程PMP三种运行方式,在不同的处理中会进行选择变换,极其方便;此外,Linux系统是可支持多用户多进程的操作系统,用户之间互不干扰,节省资源,提供了优越的服务。(3)降低成本Linux系统是免费的操作系统,稳定,可靠。Apache服务器也是完全免费,并且完全公开其源代码,由此用户可根据自身的需要去进行相关模块的开发。这就大大的降低了在这些必要开支上的成本,不管是个人还是公司大企业都是一个不错的选择。2 Apache服务器的可行性分析2.1技术可行性Apache服务器是Web服务器最常见的一种,其中需要对Linux操作系统有充分的认识和了解,并掌握常见的命令和基本配置能力。其中有两个要点需要注意:(1) 灵活应用重定向功能有时候处于某些原因,如添加硬盘或者升级服务器的需要,系统管理员需要更改Web服务器中网页的存储位置。此时该如何让Web服务器了解这个变更的信息呢?如果一张张的去更改网页的位置,显然工作量太大。在某些Web服务器中,是通过相对路径来解决这个问题的。只要把跟文件夹移动到另一个位置,然后只需要更改根文件夹的位置,那么这个文件夹中的网页内容,由于采取了相对路径为此就不需要一一进行调整的。不过在Apache服务器中则是采取了另外一种独特的处理机制,即重定向功能。利用这个重定向功能不仅可以解决网页位置变动的问题,而且还有其他一些有用的用途。如当在对网页进行改变或者新添加功能的时候,可能需要在短时间内中止用户的访问。如有些论坛出于合并的需要,或者可能被黑客攻击而不得不暂时中止访问。此时为了表示对访问者的歉意,他们往往希望能够把客户的访问请求连接到一个特殊的页面中。在这个页面中会表明这个网站暂时关闭的原因以及在此开发的时间。让访问者看到这个信息之后能够知道这只是暂时关闭,而不是永久性的关闭。这有利于稳住老客户的心,让好不容易才积累起来的客户群不丢失。其实这也可以通过重定向功能来实现。如系统管理员预先定义好一个网页,然后在需要的时候利用重定向功能更新网站地址即可。等到故障恢复之后,再启用原先的连接。 所以说,Apache服务器中重定向功能是一项很有用的内容。其不仅可以用来完成其他服务器上的相对路径的功能,而且还可以完成其所不具备的内容。如果Linux系统管理员要用Apache服务器来实现企业的HTTP服务器的话,则重定向功能无疑是其必须掌握的一项功能。 (2) 缓存设置在这里讲的缓存,给其他应用服务器上所说的高速缓存是两个完全不同的概念,系统管理员不能够混为一谈。其他应用服务器讲的高速缓存往往是指把用户的内容保存在内存中。但是由于内存的容量有限,为此保存的内容并不是很多。但是由于网页中往往包含着比较丰富的图片、动画、背景音乐等信息,为此光凭内存中这点容量往往起到的作用有限。为此在Apache服务器中其实现了一种基于硬盘的数据缓存技术。这其中包括三个缓存设置:第一个是缓存的容量设置,第二个是检查数据缓存的时间间隔,第三个是禁用缓存。对这三个缓存进行设置就能满足要求。虽然这样的工作对我这种刚学完Linux系统的学生来说困难还是比较大的,但是我在图书馆借阅了不少书籍,更在网上浏览了大量资料,勉强能够做好。2.2服务器配置的工作量Apache服务器的配置相对于我这种已经学过Linux操作系统的学生来说困难不大,各种命令和配置文件也比较清楚,但是如果加上对重定向功能和缓存功能的配置,那就显的有点捉襟见肘了。相对来说,文字的工作量比较大,但是能够按进度完成任务。实际工作量预计两星期(每天3-5小时)。如过需要包含对Apache服务器的应用操作及技术文档的整理、制作,工作量将更大点。2.3服务器配置时间预计需2天左右。2.4服务器配置需求 需要能运行的Linux虚拟机一台,或者具备Linux操作系统,另外需要Red Hat Linux 9.03简体中文正式版的安装盘一套,DVD光驱,以及能连接Internet。3 Apache服务器的安装和配置3.1 安装和启动Apache服务器在Red Hat Linux 9 中自带了以下两个Apache2.0的安装软件:(1)httpd:Apache 2.0(2)httpd-manual:Apache 2.0手册检测Linux系统中是否已经安装了Apache服务器可以使用下面的命令:#rpm qa|grep httpd 如果确认在Linux系统中没有安装Apache,可以将Red Hat Linux 9的三张安装盘的第一张放入光驱,然后执行以下命令:#rpm -ivh httpd-2.0.40-21.i386.rpm#rpm -ivh httpd-manual-2.0.40-21.i386.rpm当安装完Apache服务器后,如果想让其提供Web服务还必须启动它。下面的命令用来查看Apache服务器是否启动: #pstree | grep httpd可以使用如下命令查看Apache服务器的运行状态:#service httpd status可以使用下面的命令来启动或重新启动Apache服务器:#service httpd start#service httpd restaer3.2 Apache服务器的配置 Apache 2.0的主配置文件为httpd.conf,它再不使用旧的srm.conf 或access.conf配置文件,把它们留为空白。如果是以RPM包方式安装Apache服务器,则该配置文件保存在/etc/httpd/conf/目录下(本课程设计中的Apache安装为此方式)。Apache服务器的配置可以直接修改httpd.conf文件;也可以用Red Hat Linux 9 自带的图形化HTTP配置工具来配置,还需要有X窗口和根权限。 (1)基本设置依次单击“主菜单系统设置服务器设置HTTP服务器”。或者在终端提示中键入命令:#redhat-config-httpd打开HTTP配置工具对话框如图3.1所示。图3.1 HTTP配置工具对话框使用图3.1中的“主”标签来配置Apache的基本服务器设置。下面是对该对话框所填写文本框的说明:A.服务器名:输入有权限使用的完整域名。该选项和httpd.conf中的ServerName指令相对应。B.网主电子邮件地址:输入Apache服务器管理者的电子邮件地址。该选项和httpd.conf中的ServerAdmin指令相对应。默认值是:rootlocalhost。C.可用地址:定义Apache服务器接受进入连接请求的端口。该选项和httpd.conf中的Listen指令相对应。Red Hat 默认配置Apache HTTP服务器在端口80上。D.单击“添加”按钮,打开如图3.2所示的对话框,在其中定义接受请求的其他端口。在此对话框中可以选择“监听所有地址”选项,来定义监听端口上的所有IP地址,也可以在“地址”字段中指定服务器会接受请求的地址,每个端口只能指定一个IP地址。如果想在同一个端口号上指定多个IP地址,请为每个IP地址分别创建条目。如果有可能,使用IP地址而不是域名,这样会避免DNS查询失败。图3.2 指定侦听端口和IP地址(2)默认设置在图3.1中单击“虚拟主机”标签,然后单击上面的“编辑默认设置”按钮,打开如图3.3所示窗口。在该窗口中可以进行Apache服务器的配置。如果添加一个虚拟主机,该虚拟主机配置的设置会被优先采用,但对于虚拟主机内没有定义的指令,就会使用默认值。图3.3 虚拟主机的默认配置下面分别对这些默认设置进行说明。A.站点配置。“目录页搜索列表”中列出的项目定义了httpd.conf中的DirectoryIndex指令。DirectoryIndex是用户通过在目录名后指定正斜线来请求目录索引时,由服务器提供的默认网页。例如,当某用户请求网页/this_directory/时,会得到DirectoryIndex网页(若存在)或是由服务器生成的目录列表。服务器会试图寻找DirectoryIndex指令中列出的文件,并提供它找到的第一个文件。如果没找到任何文件,并且设置了Options Indexes,服务器就会生成并返回一个HTML格式的列表,并列出该目录下中的子目录和文件。“错误代码号”用来配置Apache HTTP服务器在出现错误和问题时把客户重导向给本地或外部URL。该选项和http.conf中的ErrorDocument指令相对应。B.记录日志。服务器默认把传输日志写入/var/log/httpd/access_log文件,把错误日志写入/var/log/httpd/error_log文件。传输日志包含一个所有试图连接Web服务器的列表。它记录试图连接的客户的IP地址,试图连接的日期和时间,以及试图检索的Web服务器上的哪个文件。输入要存储该信息的路径和文件名。如果路径和文件名不能以斜线开头,该路径就是相对于配置的服务器根目录而言的。该选项和httpd.conf中的TransferLog指令相对应。C.环境变量。为了CGI脚本或服务器端嵌入(SSI)页,有时必须把修改环境变量。Apache HTTP服务器可以使用mod_env模块来配置被传递给CGI脚本和SSI页的环境变量。使用“环境变量”页来为该模块配置指令。D.目录。使用“目录”页来为指定目录配置选项。它和httpd.conf中的指令相对应。该配置有以下选项:ExecCGI允许执行CGI脚本。如果该选项没有被,CGI脚本就不会被执行。FollowSymLinks允许追随符号连接。Includes允许服务器端嵌入。IncludesNOEXEC允许服务器端嵌入,但是在CGI脚本中禁用#exec和#includes命令。Indexes如果请求的目录中不存在 DirectoryIndex(如index.html),则显示目录内容的格式化列表。Multiview支持content-negotiated multiviews;该选项被默认禁用。SymLinkIfOwnerMatch只有当目标文件、目录和链接的所有者相同时,才追随该符号链接。(3)服务器设置“服务器”选项卡,如图3.4所示。允许配置Apache服务器的基本设置。默认设置在多数情况下都是适用的,一般无须修改。图3.4 Apache的服务器配置(4)调整性能单击“调整性能”标签,如图3.5所示,来配置服务器子进程的最大数量,以及客户连接方面的Apache HTTP服务器选项。这些选项的默认设置在多数情况下是恰当的。改变这些设置会影响Web服务器的整体性能。图3.5 调整性能 把“最多连接数量”设为服务器能够同时处理的客户请求的最多数量。“连接超时”定义服务器在通信时等候传输和回应的秒数。“每次连接最多请求数量”是设置每个持续连接所允许的最多请求次数,默认值为100;如果选择了“允许每次连接可有无限限制请求”选项,MaxKeepAliveRequests指令的值就会是0,这会允许无限制的请求次数。3.3 配置虚拟主机虚拟主机在一台Web服务器上为多个单独的域名提供Web服务,每个域名具有特定的目录和配置,相当于将一台主机分为多台主机。虚拟主机技术对于主机数量不足,但又想为不同的用户提供独立的Web服务的需求非常有效。而对于一个公司而言,利用价格昂贵的服务器只提供一种域名服务,似乎是不明智的。现在越来越多的公司喜欢在一台服务器上使用多个域名服务,架设不同的网站,这样做的好处显而易见。Apache有两种方式支持虚拟主机,一种是基于IP的虚拟主机,另一种是基于名字的虚拟主机。基于名字的虚拟主机使用相同的IP地址来配置不同的虚拟主机,这就弥补了以为IP地址不足而带来的问题。基于名字的虚拟主机配置相当简单,只需要配置DNS服务器使每个主机名对应正确的IP地址,然后再配置Apache HTTP Server使它能认识不同的主机名即可。(1)基于名字的虚拟主机假设某一学校按照职能部门组建基于名字的虚拟主机。有一台Apache服务器和一个IP地址:92,假设有三个单位需要建立网站,一个为办公室网站,域名为,一个为计算机系网站,域名为,一个为学生网站,域名为。先在DNS服务器中把这三个网站的IP地址都设为92,然后编辑/etc/httpd/conf/httpd.conf即可。A.基于名称的虚拟主机的DNS配置。由于HTTP/1.1被广泛采纳,现在能用一种方法来建立非IP方案的虚拟Web主机,这使得同一个IP地址可供多个主机名称使用。基于名称的虚拟主机不需要唯一的IP地址。所有需要进行的操作为在相应的DNS数据库中给每一个虚拟主机创建一个CNAME(规范名称)。换句话说,只需要为已存在的主机创建一个别名。现在想要创建一个名为、和的虚拟主机,并使用同一个Apache服务器。所需要的工作仅仅是在提交的DNS配置文件中,为创建别名: IN CNAME IN CNAME IN CNAME 或者office IN CNAME wwwcomputer IN CNAME wwwstudent IN CNAME www对于测试,可直接使用/etc/lhosts名称解析文件来进行域名的注册。对用于Internet的虚拟主机域名,则应在位于Internet的DNS服务器上进行注册登记。编辑/etc/lhosts文件,在文件中添加以下内容:92 如图3.6所示。图3.6 DNS服务器上注册然后打开终端,分别用如下指令对三个域名进行发送数据包,看能否收到,检测域名解析是否正常,若能ping通,则域名解析正常。# ping # ping # ping 如图3.7所示。图3.7 检测域名解析再在终端输入以下命令,创建所需的目录。# mkdir /var/www/office# mkdir /var/www/computer# mkdir /var/www/student如图3.8所示。图3.8 创建目录B.修改配置文件。当配置完成相应的DNS别名之后,下面修改Liunx中Apache的配置文件/etc/httpd/conf/httpd.conf即可。如图3.9所示。图3.9 修改配置文件(2)基于IP的虚拟主机基于IP的虚拟主机要求使用不同的IP地址来区别不同的虚拟主机,这就要求使用多块网卡,把不同的IP地址捆绑到不同的网卡上,或者在一块网卡上捆绑多个IP地址,假设主机的IP地址为90(),另外两个主机的IP地址分别是91()和92()。首先,配置DNS服务器,使得A记录指定到这三个IP地址,再加上PTR指针即可。然后编辑/etc/httpd/conf/httpd.conf。A.基于IP虚拟主机的DNS配置。基于IP的虚拟主机的配置要求为每一个虚拟主机提供一个惟一的IP地址。因此,创建基于IP的虚拟主机的第一步是在提交的DNS配置文件中添加一个Address记录。例如,要创建一个名为的 虚拟主机,可在DNS配置文件中加入下面一行:V IN A 90其中90是虚拟主机的IP地址。下一步,需要在DNS配置文件的后面创建一个PTR指针记录。该记录可以表示如下:90. IN PTR 190 IN PTR例如,如果用户想要创建三个基于IP的虚拟主机:、和,这三个虚拟主机站点的共同域名是,用户可以按照如下所示在NDS配置文件中进行配置:Office INA 90Computer INA 91Student INA 92另外,还需要在NDS的配置文件中添加以下的PTR记录:190 IN PRT 191 IN PRT 192 IN PRT B.修改配置文件。当配置完成相应的DNS之后,下面要修改Linux中Apache的配置文件/etc/httpd/conf/httpd.conf。在该文件中加入以下各行:ServerAdmin DocumentRoot /var/www/officeServerName ErrorLog /var/www/office/logs/error_logServerAdmin DocumentRoot /var/www/computerServerName ErrorLog /var/www/computer/logs/error_logServerAdmin DocumentRoot /var/www/studentServerName ErrorLog /var/www/stuent/logs/error_log4 测试虚拟主机4.1 编辑HTML测试文档新建终端,利用vi编辑器,在虚拟主机的站点根目录,分别创建index.html页面文件,并在页面的与之间输人不同的正文内容,以示区别。/var/www/office/index.html 的内容是:This is office page Linux操作系统课程设计计算机与通信工程系计算机科学与技术07-01班李明珠制作学号:200786250109如图4.1所示。图4.1 office测试内容/var/www/computer/index.html 的内容是:This is computer page Linux操作系统课程设计计算机与通信工程系计算机科学与技术07-01班李明珠,学号:200786250109如图4.2所示。图4.2 computer测试内容/var/www/student/index.html 的内容是:This is computer page Linux操作系统课程设计 长沙理工大学计算机与通信工程系计算机07-01班李明珠,学号:200786250109如图4.3所示。图4.3 student测试内容把测试的内容编辑好之后,保存并退出。4.2 测试主机回到终端之后,用以下命令启动HTTP服务:#service httpd staer/restart如图4.4所示。图4.4 启动HTTP服务器启动服务器之后打开浏览器,在地址栏里输入回车,就可以访问office页面,如图4.5所示。图4.5 office主页启动服务器之后打开浏览器,在地址栏里输入回车,就可以访问computer页面,如图4.6所示。图4.6 computer主页启动服务器之后打开浏览器,在地址栏里输入回车,就可以访问student页面,如图4.7所示。图4.7 student主页5 异常处理其中有一次不能访问apache的页面,检查得知,apache在疯狂写日志,而且大部分是一句话:“winnt_accept: Asynchronous AcceptEx failed”,最多的时候写到了100M以上。经各方探索,最终在apache的手册上找到了一个解决方法:在http.conf配置中设置Win32DisableAcceptEx参数。这样做的原因是,apache在某些Windows版本上可能兼容性不足,在调用AcceptEx接收请求时可能有问题,使用上面的参数禁用后,apache会使用另一套方案替代(BSD),这种方案效率稍微低些。当时修改完该设置后,重启apache,测试了一段时间,感觉原来的问题确实消除了,不过当时感觉内存占用量非常明显,但测试一段时间没有问题就放过去了,直到前几天又不能访问页面了,然后检查apache发现它已经crash了。然后打开日志发现最后一句:“Out of memory!”内存不足了。然后对内存进行测试,发现一直按住F5键不停,apache的内存就不停上涨,似乎有一直吃光内存的意思,停止刷新后只能下降到500M左右了(刚启动时是20M)。如果不使用Win32DisableAcceptEx参数则明显没有这个问题,停止刷新后能回落到20M。看来是这个参数的原因。于是从google上寻找答案,但可惜的是没有太多有价值的东西。只能看到apache的官方网站已经把这个问题列为了一个bug,甚至有些人又退回到不使用那个参数(忍受AcceptEx failed的风险?)。最后看到了一个说法,将ThreadsPerChild 设为170以下就可以,可为什么是170以下呢?作者没有很多描述。如果将Threadsperchild 设为50,无论怎么刷新内存最多到150M左右,但不会再长了。停止刷新后,会降到55M左右;如果将ThreadsPerChild 设为100, 内存峰值:282M,能降到92M左右;如果将ThreadsPerChild设为550,内存峰值2G,停止后到500M左右。按照上述规律,基本上找到了问题的原因,因为我的配置中原来使用的是ThreadsPerChild 550,这样也就是内存很可能会长到2G以上(复杂页面比简单页面耗用量大),而机器的内存设置不能支持这么大,因此应该就是这个问题了。所以最终的解决方法就是保留Win32DisableAcceptEx的同时修改了ThreadsPerChild 150。解决完成后我推测内存疯狂增长的原因:首先,ThreadsPerChild的意思是系统启动时默认启动的等待线程数,用来等待处理客户的请求。在使用AcceptEx时内存增长不明显并且可以降回20M左右,可能是因为用户来了请求线程分配了一些资源,此时内存增长,但用户访问完成后,这些资源都释放了(这些资源很可能都和用户相关,没法留着下个用户使用,所以都释放了)。但禁用了AcceptEx后,由于apache每个线程需要处理网络事件,因此每个线程的资源需要就多了,并且处理完一个用户的请求后,有些资源不想释放,是可以对下个用户重用的,这样就留在了里面。由于我的线程数设了550(估计网上很多人遇到这个类似于“memory leak”问题的可能也都设的比较大或者机器虚拟内存较小),这样当线程较多时就会出现达到最大内存的情况,而且这种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 绵阳市安州区融媒体中心2025年下半年第二批公开招聘编外人员的考试参考题库及答案解析
- 护理考试题库及答案2022题
- 2025年河北邢台柏乡县公开招聘工作人员98人考试参考题库及答案解析
- 2025年自考专业(会计)考试历年机考真题集及答案详解(全优)
- 2025河南郑州理工职业学院招聘7人考试参考题库及答案解析
- 2025西安唐城医院9月招聘(23人)考试参考题库及答案解析
- 人教版8年级数学下册《平行四边形》重点解析试题(详解)
- 2024年安全员考试考前冲刺练习试题含答案详解(夺分金卷)
- 2025甘肃陇南西和县城镇公益性岗位招聘25人考试参考题库及答案解析
- 2024-2025学年自考专业(金融)能力检测试卷附答案详解【综合卷】
- 单孔腹腔镜课程讲义课件
- 优秀初中语文说课课件
- 人教精通版六年级上英语Lesson15教学课件
- 人工血管动静脉内瘘术后护理课件
- 普通逻辑ppt课件(完整版)
- GB∕T 16762-2020 一般用途钢丝绳吊索特性和技术条件
- 《小学语文课程与教学论》复习题
- DB32∕T 4065-2021 建筑幕墙工程技术标准
- 施工现场环保工作措施
- 资产清查服务方案模版
- 检具设计PPT.
评论
0/150
提交评论