1. apache的配置文件(路径可能不同,但文件名应该不会变): /etc/httpd/conf/httpd.conf 

2. 可执行文件在:/usr/sbin

3. apache服务启动的命令:service httpd start  (status   stop    restart)

4. apache的调优:vi /etc/httpd/conf/httpd.conf


第一:工作模式的调优

    -------通过  httpd -l  可以查看当前模式

  • Prefork模式:使用多个子进程,每个子进程只有一个线程,效率高,每个请求相互独立,若一个请求出现问题不会影响到其他请求,但内存占用大

    Web服务器---Apache_Apache

     MaxClients:如果需要设置此参数,那么先设置ServerLimit,两者大小可以一样,但不能超过ServerLimit


  • Worker模式:使用多个子进程,每个子进程有多个线程,内存占用小,适合高流量的http服务器,但如果一个线程崩溃,整个进程就会一起死掉

    互联网企业一般高流量高并发,应该考虑使用这种模式,因为用的是多线程。至于缺点,可以使用负载均衡等技术手段,尽可能降低。

    Web服务器---Apache_Apache_02

    ThreadsPerChild:如果需要设置此参数,那么先设置ThreadLimit,两者大小可以一样,但不能超过ThreadLimit


第二:关键参数的调优

  • Timeout:指定apache的超时时间,单位秒,若超过该时间,apache放弃处理该请求,并释放连接,该参数默认值为120,推荐设置为60,对于访问量较大的网站可以设置为30或15

  • KeepAlive:在内存非常充足的服务器上,不管是否关闭此功能,服务器性能不会有明显变化;如果服务器内存较少,或者主要处理动态网页服务,关闭它可以节省很多内存;静态服务的处理建议打开

  • 过期时间:充分利用缓存(这里指的是客户端缓存,可以理解为浏览器的缓存)Expires头信息是客户端缓存的重要依据,如果当前时间小于Expires指定的时间,浏览器就会从缓存中直接获取相关的数据信息或HTML文件,反之,浏览器会向服务器发送请求来获取。

    去掉LoadModule expires_module modules/mod_expires.so前面的 # 

    Web服务器---Apache_Apache_03

    设置完成,保存,重启apache即可生效。

  • 开启gzip:压缩Internet传输的所有文本类资源,如html, css, js,比如利用QQ传送大文件的时候,压缩之后传送速度明显快于压缩之前

    去掉以下2个前面的 #

    LoadModule deflate_module modules/mod_deflate.so

    LoadModule headers_module modules/mod_headers.so

    压缩级别,不要设置太高,否则会占用太多cpu。

    Web服务器---Apache_Apache_04

    设置完成,保存,重启apache即可生效。

    如果想验证,可以通过Firebug或F12等工具,查看请求和响应,如果请求头内包含Accept-Encoding:gzip,deflate,sdch,则表示当前请求支持的压缩格式;如果响应头内包含Content-Encoding:gzip,则表示响应内容已经进行了gzip压缩

  • HostnameLookups:设置为off,尽量减少DNS查询的次数


5. apache从哪几方面进行调优

  • 硬件(比如根据工作模式占用内存大小)

  • 工作模式

  • 参数

  • 部署方式(比如,apache和tomcat负载均衡,或者apache搭配其他)