网页为什么要进行压缩呢?
网站的访问速度是由多个因素所共同决定的,这些因素包括程序的响应速度、网络宽带、服务器性能、与客户端之间的网络传输速度等。使用了压缩可以提升应用程序的速度,而且关键是不需要任何成本,只不过是让服务器CUP占有率稍微提升一两个百分点或更少。
具体操作如下
(1)检验是否安装 mod_deflate 模块
[root@localhost ~]# apachectl -D DUMP_MODULES | grep "deflate"
(2)安装 mod_deflate 模块
如果没有安装mod_deflate模块,需要停止Apache服务,重新编译安装 Apache,参数
中加入mod_deflate模块内容
[root@localhost ~]# systemctl stop httpd
[root@localhost~]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]#
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-cgid \
--enable-deflate
[root@localhost httpd-2.4.29]# make && make install
**注意:**有时候在编译安装Apache时,会出现以下错误:
checking whether to enable mod_deflat…configure: error: mod_deflate has been
requested but can not be built due to prerequisite failures
解决方案:
[root@localhost~]# yum install -y zlib-devel
(3)配置mod_deflate模块启用
编译安装后,mod_deflate 模块需要在 httpd.conf 文件启用才能生效。
[root@localhost httpd-2.4.29]vi /usr/local/httpd/conf/httpd.conf
LoadModule deflate_module modules/mod_deflate.so #把前面“#”去掉
在文本末尾加入以下内容
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript image/png image/jpg
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
</IfModule>
(4)检测 httpd.conf 语法
[root@localhost httpd-2.4.29]# httpd -t
Syntax OK
问题:
[root@localhost httpd-2.4029]# httpd -t ##当出现如下问题就是需要优化路径
-bash: httpd: command not found
参考此篇进行优化
优化执行路径
(5)测试
先把b.jpg照片传到/usr/local/httpd/htdocs/目下
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# vi index.html ##编辑测试页
----测试页-----
<html>
<head>
<title>--压缩测试页--</title>
</head>
<body><h1>这是一个测试网页内容压缩的页面!!This is test Pagell</h1>
<img src=b.jpg / >
</body>
</html>
问题: 当测试页面中出现乱码问题解决方法如下
[root@localhost ~]# vi /etc/httpd.conf
AddDefaultCharset utf-8 #插入这条命令
[root@localhost ~]# systemctl restart httpd
压缩完成后还有可以用wireshaerk 抓包测试图片传输是否压缩
看到以下类似的报文就说明成功了
HTTP/1.1 200 OK (JPEG JFIF image)
Hyertext Transfer Protocol
HTTP/1.1 200 OK \r \n
content-Encoding: gzip \r \n ###这个地方表示图片压缩###