Apache2优化配置总结

jopen 5年前

运行和测试环境  

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测试 性能提高了...百倍...


来自:http://blog.csdn.net/atvance016/article/details/43116753

</span>