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模式:使用多个子进程,每个子进程只有一个线程,效率高,每个请求相互独立,若一个请求出现问题不会影响到其他请求,但内存占用大
MaxClients:如果需要设置此参数,那么先设置ServerLimit,两者大小可以一样,但不能超过ServerLimit
Worker模式:使用多个子进程,每个子进程有多个线程,内存占用小,适合高流量的http服务器,但如果一个线程崩溃,整个进程就会一起死掉
互联网企业一般高流量高并发,应该考虑使用这种模式,因为用的是多线程。至于缺点,可以使用负载均衡等技术手段,尽可能降低。
ThreadsPerChild:如果需要设置此参数,那么先设置ThreadLimit,两者大小可以一样,但不能超过ThreadLimit
第二:关键参数的调优
Timeout:指定apache的超时时间,单位秒,若超过该时间,apache放弃处理该请求,并释放连接,该参数默认值为120,推荐设置为60,对于访问量较大的网站可以设置为30或15
KeepAlive:在内存非常充足的服务器上,不管是否关闭此功能,服务器性能不会有明显变化;如果服务器内存较少,或者主要处理动态网页服务,关闭它可以节省很多内存;静态服务的处理建议打开
过期时间:充分利用缓存(这里指的是客户端缓存,可以理解为浏览器的缓存)Expires头信息是客户端缓存的重要依据,如果当前时间小于Expires指定的时间,浏览器就会从缓存中直接获取相关的数据信息或HTML文件,反之,浏览器会向服务器发送请求来获取。
去掉LoadModule expires_module modules/mod_expires.so前面的 #
设置完成,保存,重启apache即可生效。
开启gzip:压缩Internet传输的所有文本类资源,如html, css, js,比如利用QQ传送大文件的时候,压缩之后传送速度明显快于压缩之前
去掉以下2个前面的 #
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
压缩级别,不要设置太高,否则会占用太多cpu。
设置完成,保存,重启apache即可生效。
如果想验证,可以通过Firebug或F12等工具,查看请求和响应,如果请求头内包含Accept-Encoding:gzip,deflate,sdch,则表示当前请求支持的压缩格式;如果响应头内包含Content-Encoding:gzip,则表示响应内容已经进行了gzip压缩
HostnameLookups:设置为off,尽量减少DNS查询的次数
5. apache从哪几方面进行调优
硬件(比如根据工作模式占用内存大小)
工作模式
参数
部署方式(比如,apache和tomcat负载均衡,或者apache搭配其他)