Web服务器性能监控分析与优化V10.docx_第1页
Web服务器性能监控分析与优化V10.docx_第2页
Web服务器性能监控分析与优化V10.docx_第3页
Web服务器性能监控分析与优化V10.docx_第4页
Web服务器性能监控分析与优化V10.docx_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Apache性能监控3Apache自带监控页面4LoadRunner监控Apache5从Apache日志监控性能(ApacheTop)6HTTP连接状态监控7Netstat监控http连接状态7httpd进程状态监控9监控工具9Apache性能优化10MPM对Apache性能的影响10ThreadsPerChild11调整MaxClients13调整MaxSpareServers14KeepAlive的配置15压缩16mod_cache的应用18卸载未使用的Apache模块19WAS中的IHS性能监控20IHS性能优化21如何确定IHS需要提供的并发访问服务能力?21TCP连接状态监控22并发线程相关的设置25影响性能的配置27HostnameLookups27mod_mime_magic28MaxRequestsPerChild28.htaccess files29detailed logging29disabling Options FollowSymLinks30网络优化30Access logs31Nginx监控34监控页面34图形化监控工具nginx-rrd36nginx监控shell脚本38通过命令查看 netstat -n | awk /tcp/ +S$NF END for(a in S) print a,Sa39Nginx优化40worker_processes40worker_cpu_affinity40worker_rlimit_nofile41use epoll41worker_connections43tcp_nodelay44gzip46open_file_cache max46Nginx+WAS47Apache性能监控Apache作为历史悠久的Web服务器,一直是Web应用系统的首选,是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一,是LAMP架构的重要组成部分。由于Apache担负着Web应用系统前端大门的角色,因此它的性能表现对整体应用系统的影响就显得尤为关键了。Apache的架构图如图6.2所示:图6.2 Apache架构图Apache自带监控页面要监控Apache的性能,首先需要打开confhttpd.conf配置文件,进行如下修改(允许查看Apache运行状态的主机): # # Allow server status reports, with the URL of http:/servername/server-status # Change the . to match your domain to enable. # # 取消以下代码前面的注释符号“#”,并且设置Order(顺序)为允许优先 SetHandler server-status Order allow,deny Deny from nothing Allow from all 这样改变以后重新启动Apache,在浏览器中输入http:/server-status就 可以看到Apache运行时的信息,而输入http:/server-status?auto就会看到如下信息: Total Accesses: 124 Total kBytes: 444 CPULoad: 3.32432 Uptime: 37 ReqPerSec: 3.35135 BytesPerSec: 12288 BytesPerReq: 3666.58 BusyWorkers: 1 IdleWorkers: 7 Scoreboard: _W_.看到这样的信息就表示修改成功,可进一步改变Apache的设置,打开详细状态开关; # # ExtendedStatus controls whether Apache will generate full status # information (ExtendedStatus On) or just basic information (ExtendedStatus # Off) when the server-status handler is called. The default is Off. # #取消了下面一行前面的注释符号“#” ExtendedStatus On如果想查看各模块信息,则可按如下所示修改配置文件: # # Allow remote server configuration reports, with the URL of # http:/servername/server-info (requires that mod_info.c be loaded). # Change the . to match your domain to enable. # #取消一下代码前面的注释符号“#”,并且设置Order(顺序)为允许优先 SetHandlerserver-info Ordeallow,deny Deny fromnothing Allow fromallApache 2.2的配置略有不同:(1)修改conf httpd.conf加载mod_status.so:LoadModule status_module modules/mod_status.so包含httpd-info.conf:# Real-time info on requests and configurationInclude conf/extra/httpd-info.conf(2)、修改confextrahttpd-info.conf SetHandler server-status Order allow,deny Deny from nothing Allow from all如果想使用LoadRunner监控Apache的运行情况,可在LoadRunner中双击Web Server Resource Graphs下的Apache节点,然后在右边对应的窗口中添加Apache所在主机的IP地址,并且加入计数器后单击OK,这样就可以在LoadRunner中实时显示Apache的运行状态信息了。注意:您可能收到如下消息【Monitor name :Apache. Parsing error, cannot find token: BusyServers. Measurement: BusyServers|86. Hints:1) Such a measurement does not exist, or the html page may be different from the supported one. 2) Try to replace the Apache.cfg with appropriate Apache_.cfg file in datmonitors and rerun the application (entry point: CApacheMeasurement:NewData).MsgId: MMSG-47479】这是由于要监视Apache的版本提供的计数器与LoadRunner默认的计数器不一致导致的。此时建议先关闭Controller,打开LoadRunner安装目录下的datmonitors下的apache.cfg文件:(1)、修改Counter0=IdleServers为Counter0=IdleWorkers,同时修改注释信息Label0=#Idle Servers (Apache)为Label0=#Idle Workers (Apache),描述信息也建议修改;(2)、修改Counter4=BusyServers为Counter4=BusyWorkers,同时修改注释信息Label4=#Busy Servers (Apache)为Label4=#Busy Workers (Apache) ,描述信息也建议修改。然后保存并关闭该文件,重新打开Controller并添加计数器,这样监视就正常了。LoadRunner监控ApacheD:PrefTestApache调优使用LoadRunner监控Apach服务器的步骤.docl CPULoad:当前由Apache服务器消耗的CPU。l ReqPerSec:每秒请求数(也就是命中率hit per second)。l BytesPerSec:每秒传输的字节数。l BytesPerReq:每秒钟请求的字节数。l BusyWorkers:提供服务的线程数。l IdleWorkers:空闲的线程数。从Apache日志监控性能(ApacheTop)Apache的日志存储了丰富的信息,在linux下可以利用apachetop这个小工具来实时监控显示Apache的访问日志,从而观察和分析Apache的性能表现。下面简要介绍apachetop的使用方法:(1)、下载apachetop-0.12.6-2.el5.rf.i386.rpm:/apachetop/apachetop-0.12.6-2.el5.rf.i386.rpm(2)、安装:rpm -ivh apachetop-0.12.6-2.el5.rf.i386.rpm安装过程中可能碰到提示缺少libadns,下载libadns-1.4-3.el4.pp.i386.rpm安装后即可。(3)、使用apachetop监控apache日志:apachetop -f /usr/local/apache2/logs/access_log apachetop将以类似top命令的方式实时显示apache的访问日志的统计信息,例如:last hit: 03:44:53 atop runtime: 0 days, 00:00:05 03:44:54All: 1938 reqs ( 387.6/sec) 1875.0K ( 375.0K/sec) 990.7B/req2xx: 1867 (96.3%) 3xx: 71 ( 3.7%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%)R ( 5s): 1938 reqs ( 387.6/sec) 1875.0K ( 375.0K/sec) 990.7B/req2xx: 1867 (96.3%) 3xx: 71 ( 3.7%) 4xx: 0 ( 0.0%) 5xx: 0 ( 0.0%) REQS REQ/S KB KB/S URL 1832 366.4 1817 363*/get_api/ 41 8.20 31.2 6.2 /embed_swf/ 36 7.20 26.0 5.2 /farm_bill/ 22 4.40 0.2 0.0 /embed_swf/null 4 1.00 0.0 0.0 /NginxCheck 2 0.50 0.4 0.1 /embed_swf/framework_958.swz 1 0.33 0.2 0.1 /embed_swf/framework_958.swf其中第二行和三行显示的是自命令执行以来观察到的所有数据汇总。第四、五行显示的是近30秒的数据汇总。包括:总请求数、每秒处理的请求数、总的数据传输量、每个请求的数据传输量、HTTP响应类型、HTTP响应类型的总数和每秒的响应数。另外,还会从访问量大小排列出是哪些程序或页面在被访问。HTTP连接状态监控Netstat监控http连接状态状态解析:CLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经到达,等待确认SYN_SENT:应用已经开始,打开一个连接ESTABLISHED:正常数据传输状态FIN_WAIT1:应用说它已经完成FIN_WAIT2:另一边已同意释放ITMED_WAIT:等待所有分组死掉CLOSING:两边同时尝试关闭TIME_WAIT:另一边已初始化一个释放LAST_ACK:等待所有分组死掉监控脚本:watch -d -n 10 netstat -n |awk /tcp/ +S$NFEND for(a in S) print a,Sanetstat下time_wait状态的tcp连接:1.这是一种处于连接完全关闭状态前的状态; 2.通常要等上4分钟(windows server)的时间才能完全关闭; 3.这种状态下的tcp连接占用句柄与端口等资源,服务器也要为维护这些连接状态消耗资源; 4.解决这种time_wait的tcp连接只有让服务器能够快速回收和重用那些TIME_WAIT的资源:修改注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesTcpipParameters添加dword值TcpTimedWaitDelay=30(30也为微软建议值;默认为2分钟)和MaxUserPort:65534(可选值5000 - 65534); 5.具体tcpip连接参数配置还可参照这里:/zh-tw/library/cc776295%28v=ws.10%29.aspx6.linux下: vi /etc/sysctl.conf 新增如下内容: net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies=1 使内核参数生效: rootweb02 # sysctl -p readme: net.ipv4.tcp_syncookies=1 打开TIME-WAIT套接字重用功能,对于存在大量连接的Web服务器非常有效。 net.ipv4.tcp_tw_recyle=1 net.ipv4.tcp_tw_reuse=1 减少处于FIN-WAIT-2连接状态的时间,使系统可以处理更多的连接。 net.ipv4.tcp_fin_timeout=30 减少TCP KeepAlive连接侦测的时间,使系统可以处理更多的连接。 net.ipv4.tcp_keepalive_time=1800 增加TCP SYN队列长度,使系统可以处理更多的并发连接。 net.ipv4.tcp_max_syn_backlog=8192httpd进程状态监控Linux下实时检测httpd连接数:watch -n 1 -d pgrep httpd|wc -l在Windows下可通过Windows任务管理器查看:监控工具Apache图形化管理工具:/apacheconf//HSLAB提供的其它工具: HSLAB Ping HSLAB Trace HSLAB Whois HSLAB Apache Load Simulator还有其它的监控工具,如Cactti、SiteScope等。Apache性能优化MPM对Apache性能的影响Apache 2.x 支持插入式并行处理模块,称为多路处理模块(MPM)。在编译Apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们都会影响到Apache的速度和可伸缩性:l worker MPM:使用多个子进程,每个子进程中又有多个线程。每个线程处理一个请求。该MPM通常对高流量的服务器是一个不错的选择。因为它比prefork MPM需要更少的内存且更具有伸缩性。l prefork MPM:使用多个子进程,但每个子进程并不包含多线程。每个进程只处理一个连接。在许多系统上它的速度和worker MPM一样快,但是需要更多的内存。这种无线程的设计在某些情况下优于worker MPM,因为它可以应用于不具备线程安全的第三方模块上(比如PHP3/4/5),且在不支持线程调试的平台上易于调试,另外还具有比worker MPM更高的稳定性。如果不用“-with-mpm”显式指定某种MPM,prefork就是Unix平台上缺省的MPM。它所采用的预派生子进程方式也是Apache 1.3中采用的模式。prefork本身并没有使用到线程,2.0版使用它是为了与1.3版保持兼容性;另一方面,prefork用单独的子进程来处理不同的请求,进程之间是彼此独立的,这也使其成为最稳定的MPM之一。若使用prefork,在make编译和make install安装后,使用“httpd -l”来确定当前使用的MPM,应该会看到prefork.c(如果看到worker.c说明使用的是worker MPM,依此类推)。ThreadsPerChildmpm_winnt.c是专门针对Windows NT优化的MPM(多路处理模块),它使用一个单独的父进程产生一个单独的子进程,在这个子进程中轮流产生多个线程来处理请求。也就是说mpm_winnt只能启动父子两个进程, 不能像Linux下那样同时启动多个进程。mpm_winnt主要通过ThreadsPerChild和MaxRequestsPerChild两个参数来优化Apache,下面详细来说明一下。ThreadsPerChild这个参数用于设置每个进程的线程数, 子进程在启动时建立这些线程后就不再建立新的线程了. 一方面因为mpm_winnt不能启动多个进程, 所以这个数值要足够大,以便可以处理可能的请求高峰; 另一方面该参数以服务器的响应速度为准的, 数目太大的反而会变慢。因此需要综合均衡一个合理的数值。mpm_winnt上的默认值是64, 最大值是1920. 这里建议设置为100-500之间,服务器性能高的话值大一些,反之值小一些。MaxRequestsPerChild该参数表示每个子进程能够处理的最大请求数, 即同时间内子进程数目.设置为零表示不限制, mpm_winnt上的默认值就是0. 官方参考手册中不建议设置为0, 主要基于两点考虑: (1) 可以防止(偶然的)内存泄漏无限进行,从而耗尽内存; (2) 给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。因此这个参数的值更大程度上取决于服务器的内存,如果内存比较大的话可以设置为0或很大的数字,否则设置一个小的数值。需要说明的是,如果这个值设置的太小的话会造成Apache频繁重启,在日志文件中会看到如下的文字:Process exiting because it reached MaxRequestsPerChild. Signaling the parent这样一来降低了Apache的总体性能。另外,可以通过查看Apache提供的server-status(状态报告)来验证当前所设置数值是否合理,在httpd.conf文件中做如下设置来打开它:1. # 首先需要加载mod_status模块2. LoadModule status_module modules/mod_status.so3. 4. # 然后设置访问的地址5. 6. SetHandler server-status7. Order deny,allow8. Deny from all9. # 如果限制某个IP访问则设置为 Allow from 10. Allow from all11. 综合来说,因为Windows NT下Apache只能启动父子两个进程,因此只能通过增大单个进程的线程数以及单个进程能够处理的最大请求数来进行优化。其他优化的参数同Linux系统下是一样的,大家可以加以参考。下面针对上述两个参数给出一个建议的设置:1. 2. ThreadsPerChild 2503. MaxRequestsPerChild 50004. 参考资料:Apache参考手册Apache模块 mod_status调整MaxClients内存是影响Web服务器的重要因素之一。而采用prefork MPM的话,由于每个进程会占据一定量的内存,因此需要注意调整MaxClients参数,以便在提供足够的连接给客户端的同时,不至于耗尽服务器的内存。MaxClients是指Apache最多能启动的服务器进程数。如果出现以下情况,则可推断有可能需要增加服务器的内存,加大Apache的MaxClients数量:网站在线人数增多,访问时很慢。初步认为是服务器资源不足了,但经反复测试,一旦连接上,不断点击同一个页面上不同的链接,都能迅速打开,这种现象说明Apache最大连接数已经满了,新的访客只能排队等待有空闲的连接,而如果一旦连接上,在keepAlive的存活时间内(KeepAliveTimeout默认5秒)都不用重新打开连接,因此解决的方法就是加大Apache的最大连接数。在Linux下可通过以下命令编辑配置文件,调整MaxClients值:vim httpd-mpm.conf# prefork MPM# StartServers: number of server processes to start# MinSpareServers: minimum number of server processes which are kept spare# MaxSpareServers: maximum number of server processes which are kept spare# MaxClients: maximum number of server processes allowed to start# MaxRequestsPerChild: maximum number of requests a server process serves StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 在Linux中可以用以下命令查看Apache启动的进程数:ps aux | grep httpd以下是笔者曾经做过的一个简单实验,用于证明调整MaxClients对Apache性能的影响:(1)、设置MaxClients 为50: StartServers 10 MinSpareServers 10 MaxSpareServers 20 MaxClients 50 MaxRequestsPerChild 0(2)、在LoadRunner中启动10个VU并发测试,得到性能结果如下:事务响应时间:0.013点击率:954.662测试是基于256M的Linux虚拟机进行的,top查看内存剩余不多。 (3)、增加到50个VU,LoadRunner执行测试时出现错误:Action.c(4): Error -26628: HTTP Status-Code=403 (Forbidden) for 12/(4)、调整MaxClients为150,仍然出现上述错误。查看Apache进程看到远远低于150个:rootlocalhost bin# ps aux |grep httpd | wc -l21top查看内存:Mem: 255412k total, 250852k used, 4560k free, 5436k buffersSwap: 524280k total, 100k used, 524180k free, 129308k cached 可看到内存几乎耗尽,开始使用Swap的交换空间。(5)、调整Linux虚拟机的内存设置,从256M调整到512M,启动apache,top查看内存:Mem: 515308k total, 461764k used, 53544k free, 21112k buffersSwap: 524280k total, 0k used, 524280k free, 330164k cached50个VU执行测试,错误不再出现,性能结果如下:事务响应时间:0.027点击率:968.091查看httpd进程发现Apache并没有fork出很多进程:rootlocalhost bin# ps aux | grep httpd | wc -l19内存使用增加也不多:Mem: 515308k total, 476272k used, 39036k free, 21464k buffersSwap: 524280k total, 0k used, 524280k free, 341968k cached 也就是说对于50个用户的连接,Apache只是用了19个进程来处理。(6)、增加VU到100个,事务响应有所增加,内存使用量有所增加,但是还是能较好地应付:事务响应时间:0.087点击率:934.308 这时Apache启动多了几个进程来应付这100个VU的连接:rootlocalhost bin# ps aux | grep httpd | wc -l22 查看内存使用可看到占有内存多了一些:Mem: 515308k total, 489152k used, 26156k free, 21936k buffersSwap: 524280k total, 0k used, 524280k free, 353560k cached调整MaxSpareServers对于prefork MPM的配置,除了MaxClients之外,还有以下配置选项:l StartServers: 启动Apache时就启动的服务器进程。l MinSpareServers: 最少保留的备用服务器进程。l MaxSpareServers: 最大保留的备用服务器进程。l MaxRequestsPerChild: 一个服务器进程可处理的请求数量。MaxSpareServers是指Apache最大保留的备用服务器进程,如果你的系统内存不是很充足或者运行有其他的服务,把MaxSpareServers设置小一些可以为其他服务空出一些内存。在Apache1.3以前,MinSpareServers, MaxSpareServers, StartServers的设置对性能都有很大的影响。尤其是为了应对负载而建立足够的子进程时,Apache需要有一个渐进的过程。在最初建立StartServers数量的子进程后,为了满足MinSpareServers设置的需要,每一秒钟只能建立一个子进程。所以,对一个需要同时处理100个客户端的服务器,如果StartServers使用默认的设置5,则为了应对负载而建立足够多的子进程需要95秒。在实际应用中,如果不频繁重新启动服务器,这样还可以,但是如果仅仅为了提供10分钟的服务,这样就很糟糕了。一秒钟一个的规定是为了避免在创建子进程过程中服务器对请求的响应停顿,但是它对服务器性能的影响太大了,必须予以改变。在Apache1.3中,这个一秒钟一个的规定变得宽松了,创建一个进程,等待一秒钟,继续创建第二个,再等待一秒钟,继而创建四个,如此按指数级增加创建的进程数,最多达到每秒32个,直到满足MinSpareServers设置的值为止。与进程创建相关的是由MaxRequestsPerChild引发的进程的销毁。其默认值是0,意味着每个进程所处理的请求数是不受限制的。如果此值设置得很小,比如30,则可能需要大幅增加。在Sun OS或者Solaris的早期版本上,其最大值为10000以免内存泄漏。KeepAlive的配置KeepAlive是Apache的另外一个重要配置参数,KeepAlive默认设置为On,KeepAliveTimeout默认是5秒。这个设置的含义是:对于HTTP/1.1的客户端来说,将会尽量的保持客户的HTTP连接,通过一个连接传送多份HTTP请求响应。这样对于客户端来说,可以提高50%左右的响应时间,而对于服务端来说则降低了更多个连接的开销。不过这个依赖于客户端是否想保持连接。IE默认是保持连接的,当你打开100个图片的网站时,IE有可能只开2个连接,通过这两个连接传送数据,而不是开100个连接。如果启用了持久连接,子进程将保持忙碌状态以等待被打开连接上的新请求。为了最小化其负面影响,KeepAliveTimeout的默认值被设置为5秒,以谋求网络带宽和服务器资源之间的平衡。KeepAliveTimeout是说这次连接结束后开始计时,如果5秒内没有重新发送HTTP请求,就断掉连接。这个值可以稍微大一点,但是不可太大,否则会出现同时等候过多的连接,导致过多限制资源,而使服务器性能下降。在任何情况下此值都不应当大于60秒。以下是Apache中关于KeepAlive的默认配置:# KeepAlive: Whether or not to allow persistent connections (more than# one request per connection). Set to Off to deactivate.#KeepAlive On# MaxKeepAliveRequests: The maximum number of requests to allow# during a persistent connection. Set to 0 to allow an unlimited amount.# We recommend you leave this number high, for maximum performance.#MaxKeepAliveRequests 100# KeepAliveTimeout: Number of seconds to wait for the next request from the# same client on the same connection.#KeepAliveTimeout 5压缩Gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70以上的文件大小。这取决于文件中的内容。利用Apache中的Gzip模块,我们可以使用Gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器。这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度。Apache上利用Gzip压缩算法进行压缩的模块有两种:mod_gzip 和mod_deflate。要使用Gzip Web压缩,请首先确定你的服务器开启了对这两个组件之一的支持。在Linux服务器上,现在已经有越来越多的空间商开放了对它们的支持,有的甚至是同时 支持这两个模块的。例如目前Godaddy、Bluehost及DreamHosts等空间商的服务器都已同时支持mod_gzip 和mod_deflate。虽然使用Gzip同时也需要客户端浏览器的支持,不过不用担心,目前大部分浏览器都已经支持Gzip了,如IE、Mozilla Firefox、Opera、Chrome等。通过查看HTTP头,我们可以快速判断使用的客户端浏览器是否支持接受gzip压缩。若发送的HTTP头中出现以下信息,则表明你的浏览器支持接受相应的gzip压缩:Accept-Encoding: gzip 支持mod_gzipAccept-Encoding: deflate 支持mod_deflate Accept-Encoding: gzip,deflate 同时支持mod_gzip 和mod_deflate如果服务器开启了对Gzip组件的支持,那么我们就可以在http.conf或.htaccess里面进行定制,下面是一个.htaccess配置的简单实例:# mod_gzip:mod_gzip_on Yesmod_gzip_dechunk Yesmod_gzip_item_include file .(html?|txt|css|js|php|pl)$mod_gzip_item_include handler cgi-script$mod_gzip_item_include mime text/.*mod_gzip_item_include mime application/x-javascript.*mod_gzip_item_exclude rspheader Content-Encoding:.*gzip.*# mod_deflate:DeflateCompressionLevel 6 #压缩率, 6是建议值.AddOutputFilterByType DEFLATE text/plainAddOutputFilterByType DEFLATE text/htmlAddOutputFilterByType DEFLATE text/xmlAddOutputFilterByType DEFLATE text/cssAddOutputFilterByType DEFLATE text/javascriptAddOutputFilterByType DEFLATE application/xhtml+xmlAddOutputFilterByType DEFLATE application/xmlAddOutputFilterByType DEFLATE application/rss+xmlAddOutputFilterByType DEFLATE application/atom_xmlAddOutputFilterByType DEFLATE application/x-javascriptAddOutputFilterByType DEFLATE application/x-httpd-phpAddOutputFilterByType DEFLATE image/svg+xml里面的文件MIME类型可以根据自己情况添加,至于PDF 、图片、音乐文档之类的这些本身都已经高度压缩格式,重复压缩的作用不大,反而可能会因为增加CPU的处理时间及浏览器的渲染问题而降低性能。所以就没必要再通过Gzip压缩。通过以上设置后再查看返回的HTTP头,出现以下信息则表明返回的数据已经过压缩。即网站程序所配置的Gzip压缩已生效。Content-Encoding: gzip注:不管使用mod_gzip 还是mod_deflate,此处返回的信息都一样。因为它们都是实现的gzip压缩方式。除此之外,还可以通过一些在线检测工具(如:/http_compression/)来检测你的网站内容是否已经过Gzip压缩。mod_cache的应用mod_cache是从mod_proxy分离出来的。在以前Apache 1.3的时候,就已经在mod_proxy中支持缓冲技术了。现在是为了加强缓冲能力,从mod_proxy中独立出来,而mod_proxy被完全重写了,更强调代理的作用了。从Apache 2.2开始,mod_cache将不再是实验模块而作为稳定模块发布了。为了能够支持cache,需要在编译的时候,启用它,因为默认caching是禁用的。mod_cache一共有三种mod_mem_cache,mod_disk_cache和mod_file_cache。具体怎么用可以看Apache的文档:/docs/2.2/caching.html为了能够用cache,需要在编译的时候设置:-enable-cache -enable-disk-cache -enable-mem-cache -enable-file-cache安装后编辑httpd.conf,添加: CacheDefaultExpire 3600 CacheMaxExpire 86400 CacheLastModifiedFactor 0.1 CacheRoot /usr/local/apache2/cache CacheMaxFileSize 10000000 CacheMinFileSize 1 CacheEnable disk / CacheDirLevels 5 CacheDirLength 3 这样就可以用磁盘文件缓存了,在使用之前还需要创建/usr/local/apache2/cache缓存目录,并设置可写权限。这样,启动Apache后,访问页面,就可以发现cache目录有缓冲文件了。下面对一些参数配置进行解释:(1)、CacheRoot /var/cache/apache/ 缓存文件所在的目录,运行 Apache 的用户(如daemon 或 nobody)要能对其进行读写,如果不清楚的话可以直接设置成 777,请手动建立该目录并设置好访问权限。(2)、CacheEnable disk / CacheEnable - 启用缓存,第1个参数是缓存的种类,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论