apache2优化配置总结
运行和测试环境
Ubuntu server 12.04 LTS
配置参数调整
配置文件 一般在/etc/apache2/下 apache2.conf conf.d/secrity default.conf 下面我写到的配置参数都存在在这几个文件中
1.hostnamelookups off
域名查找 开启这个会增加AP的负担, 减慢访问速度 建议关闭
2. sethandler server-status
关闭这个否则暴露信息.
3.allowoverride none
如果你不需要.htaccess 不需要重写 什么伪静态 请设置none 否则 All
4.option -indexes
这个是禁止暴露目录结构
5.timeout 5
推荐5 这个是 AP接受请求或者发出相应的时间超过这个时间 断开
6. keepalive on
这个一定要开 意思是保持连接 因为HTTP 1.1后支持长连接 开启后减少AP 每次请求资源文件啥的..再次新开进程 增加了效率
7.maxkeepaliverequests 50
保持长连接的最大个数
8.keepalivetimeout 5
长连接超过5秒后没反应的 断掉 这个数值不能太大 因为你一直保持的浪费系统资源
9.servertokens
响应头包含的信息, 这个设置 servertokens Prod
10.serversignature off
这个是产生404页面的时候 服务器的信息..如果设置off那么只会显示Apache 不会显示版本信息
11.MPM
这个比较关键是影响并发效率的主要因素
一般默认Ubuntu 安装后 是 prefork模式 如果想使用 work模式 请在编译的时候 设置配置文件
下面就讲解 prefork 这个模式是开始 进程 相对来说 比较安全 当你某个请求挂掉的时候不会影响到其他的 .
下面是我的配置
<IfModule mpm_prefork_module>
ServerLimit 1000
StartServers 10
MinSpareServers 30
MaxSpareServers 45
MaxClients 1000
MaxRequestsPerChild 3000
</IfModule>
第一个ServerLimit 这个是必须的....因为默认的MaxClients 256最大 你必须加上limit才会提高最大服务量 并且记住要放到第一个
StartServers 10 开启的AP个数
MinSpareServers 30最小空闲进程
MaxSpareServers 45最大空闲进程 这2个要根据自己服务器的承载和服务量 调节
MaxClients 1000最大的服务量同时 这个比较关键.....如果 网站并发比较大 请增加这个数 但是注意, 如果太大超过了..物理内存 会崩溃
MaxRequestsPerChild 3000最大子进程的数量
以上配置的 数字 是我自己的个人机器最优 这写数字 请大家要根据自己实际情况 亲自通过ab 或者jmeter 然后通过top 观察后 调节到最适合自己的
开启deflate
将下面3个模块ln -s 到 mods-enable
mod_deflate.so mod_expires.so
mod_header.so
然后在http.conf中添加
<ifmodule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/css application/x-httpd-php text/javascript application/x-javascript text/css AddOutputFilter DEFLATE js css #压缩js,css文件 # Don't compress images #对照片文件不进行压缩处理 SetEnvIfNoCase Request_URI (?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI (?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary SetEnvIfNoCase Request_URI .pdf$ no-gzip dont-vary #SetEnvIfNoCase Request_URI .(css|js)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary DeflateCompressionLevel 6 SetOutputFilter DEFLATE </ifmodule> <IfModule mod_expires.c> ExpiresActive On ExpiresByType text/css "now plus 1 month" ExpiresByType application/x-javascript "now plus 5 day" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/bmp "access plus 1 month" ExpiresByType image/x-icon "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType application/x-shockwave-flash "access plus 1 month" </IfModule>
开启GZIP后传输内容都被压缩了..所以速度变快了..节省了带宽
通过以上配置后.本人用ab测试 性能提高了...百倍...