前言

前两篇文章讲了Aapche的访问控制与日志分析,这篇文章会重点讲Apache的网页优化,比如:网页的压缩、网页的缓存。
我们在使用Aapche作为Web服务器的过程中,只有对Aapche服务器进行适当的优化配置,才能让它发挥出更好好的性能,因此,我们需要对Aapche服务器的配置优化!


网页压缩

凡是总会有个为什么,我们为什么要对网页进行压缩,带着这个问题来看接下来的操作。我们也常常上网,会知道网站的访问速度的快慢有很多因素,比如:应用程序的响应速度、网络带宽、服务器性能等!最重要的一个因素就是Aapche本身的响应速度。所以如果你家的网站的性能不是很理想时,就该第一时间调整Aapche服务器的执行速度,使用网页压缩可以提升应用程序的速度!
最重要的是:不需要任何费用~不需要任何费用~不需要任何费用~重要的事情说三遍


HTTP 压缩过程

1· Web服务器接收到浏览器的HTTP请求后,先检查浏览器是否支持HTTP压缩;
2·如果浏览器支持HTTP压缩,web服务器将将检查请求文件的后缀名;
3·如果请求文件的后缀名为:HTML、CSS等静态文件,web服务器会压缩缓存目录中检查是否已经存在的请求文件的最新压缩文件;
4·如果请求文件的压缩文件不存在,服务器向浏览器返回未压缩的请求文件,并在压缩缓存目录中存放压缩文件;
5·如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
6·如果请求文件时动态文件,服务器动态压缩内容并返回浏览器,但压缩内容不会存放到缓存目录中。


下面给两个演示图
未使用Gzip:
[超详细] Apache网页优化:网页压缩与网页缓存超详细_第1张图片
开启使用Gzip:
[超详细] Apache网页优化:网页压缩与网页缓存超详细_第2张图片


Aapche 的压缩模块

mod_deflate 压缩速度比较快一点,而mod_gzip 的压缩比略高
mod_deflate是专门为保证服务器性能而使用的一个压缩模块,通俗的来说,如果你的网站访问量较小,推荐使用mod_gzip,如果你的网站访问量较大,推荐使用mod_deflate 模块压缩。
在Apache2.0.45版本开始mod_deflate 可以设置压缩级别来调整压缩的速度和质量,这样就比较完美,可以由你的需要自由设定。调整的值为:1~9 (默认为6)


网页缓存

网页缓存是将一部分经常不会改变或变动很少的页面缓存,下次浏览器再次访问这些页面时,不需要再次去下载这些页面,从而提高了用户的访问速度
Apache的mod_expires 模块会自动生成页面头部信息中的EXpress标签和Cache-Control 标签,客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面,不需要再次向服务器发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。

安装mod_deflate 、mod_expires模块

重新编译安装Apache,在参数中加入mod_deflate 、mod_expires模块内容
编辑的内容如下:在gcc gcc-c++ pcre pcre-devel zlib-devel​ 都yum好了之后在./
./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-expires
make && make install
ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf #为了管理,做一个链接,方便


编辑主配置文件

vim /etc/httpd.conf
修改内容如下:
LoadModule headers_module modules/mod_headers.so #去掉注释,开启头部模块
LoadModule deflate_module modules/mod_deflate.so #去掉注释,开启压缩模块
LoadModule filter_module modules/mod_filter.so #去掉注释,开始过滤模块
LoadModule expires_module modules/mod_expires.so #去掉注释,开启缓存模块
Listen 192.168.100.20:80
#Listen 80
ServerName www.baidu.com:80


在Apache主配置文件末尾添加以下两个区域:


AddOutputFilterByType DEFLATE text/html text/plain text/css test/xml test/javascript
DeflateCompressionLevel 9
SetOutputFilter DEFLATE

在压缩模块中,添加支持的压缩文件的格式和压缩比例为9,可以自己修改
支持压缩模块的方式是DEFLATE



ExpiresActive On
ExpiresDefault "access plus 50 seconds"

网页缓存模式开启,缓存时间为50秒!


重启服务

service httpd start
service iptables stop
setenforce 0


使用Fiddler抓包工具进行验证:
[超详细] Apache网页优化:网页压缩与网页缓存超详细_第3张图片

总结

对服务器的优化可以提升客户的访问速度。
使用压缩模块可以不需要任何成本就可以提示网页的加载速度,何乐而不为!
网页缓存也从一定的基础上提供了访问速度,它是把一些资源临时存放在本地,设定一定的有效期限,当你在这个时间内在访问,就不需要请求服务器,而是直接从本地缓存调取。


归纳

这篇文章主要是讲了网页的2点优化:
1·网页的压缩,使用的压缩模块是:mon_deflate。为什么用它呢,个人感觉它的一个功能可以使用DeflateCompressionLevel 指令来设置压缩级别,这样压缩的质量、和速度都掌控在自己手中
2·网页的缓存,使用的缓存模块是:mon_expires。它可以降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的!
3·如果抓包时没有看到压缩效果,那么在Apache的站点中加张图片吧,要不然就几个字符,没有压缩效果。