欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apache网页优化--压缩和缓存

程序员文章站 2022-06-25 21:42:26
...

网页压缩

  • 使用mod_deflate模块进行对网页内容进行压缩后再传输到客户端的浏览器
  • 减低网络传输的字节数,加块网页加载的速度
  • 节省流量,改善用户的浏览体验

网页压缩步骤

  • 查看是否安装mod_deflate
  • 修改配置文件启用压缩功能
  • 访问测试

网页缓存

  • 通过mod_expire模块配置Apache,使网页能在客户端浏览器缓存一段时间,以避免重复请求
  • 启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cashe-Control标签,从而减低客户端的访问频率,达到减少不必要的流量和增加访问的目的

网页缓存步骤

  • 查看是否安装mod_expire模块
  • 修改配置文件启用缓存功能
  • 访问测试

Apache优化-压缩与缓存配置

手动编译安装Apache,将开启压缩和缓存模块
将安装包放到/opt目录下,并解压

[aaa@qq.com ~]# cd /opt
[aaa@qq.com opt]# tar zxvf apr-1.6.2.tar.gz          
[aaa@qq.com opt]#tar zxvf apr-util-1.6.0.tar.gz    
[aaa@qq.com opt]#tar jxvf httpd.2.4.29.tar.bz2
[aaa@qq.com opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[aaa@qq.com opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-until

环境部署

[aaa@qq.com opt]# yum -y install \
>gcc \
>gcc-c++ \
> make \
> pcre-devel \
> expat-devel \
> perl

编译安装

[aaa@qq.com opt]# cd httpd-2.4.29/
[aaa@qq.com httpd-2.4.29]# yum -y install zlib-devel  ##如果没安装这个将报错,支持压缩
[aaa@qq.com ]#./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-deflate \        ###压缩模块编译
--enable-expires \        ##缓存模块编译
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
...加载过程
    Server Version: 2.4.29
    Install prefix: /usr/local/httpd
    C compiler:     gcc -std=gnu99
    CFLAGS:          -g -O2 -pthread  
    CPPFLAGS:        -DLINUX -D_REENTRANT -D_GNU_SOURCE  
    LDFLAGS:           
    LIBS:             
    C preprocessor: gcc -E
[aaa@qq.com apache]#make &&make install
...

检查模块

[aaa@qq.com init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin/   ##为了方便使用Apache相关命令
[aaa@qq.com init.d]# apachectl -t -D DUMP_MODULES |grep deflate  ##检查是否开启模块
 deflate_module (shared)
[aaa@qq.com init.d]# apachectl -t -D DUMP_MODULES |grep expire
 expires_module (shared)

修改配置文件

[aaa@qq.com init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
[aaa@qq.com init.d]# 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  ##缓存
...
<IfModule mod_deflate.c>      ##在末尾添加
 AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript text/jpg text/png
 DeflateCompressionLevel 9
 SetOutputFilter DEFLATE
</IfModule>

<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 50 seconds"
</IfModule>
保存退出

写一个网页内容用来验证压缩和缓存

[aaa@qq.com htdocs]# ls     ###放一张名为work.png图片
index.html  work.png
[aaa@qq.com bin]# vim /usr/local/httpd/htdocs/index.html 
<html><body><h1>20200805</h1></body></html>
<img src="work.png">

启动服务

[aaa@qq.com conf]# cd /usr/local/httpd/bin
[aaa@qq.com bin]# ./apachectl                  ##开启服务,其实开启服务由很多方法

客户端测试
在客户端安装下fiddler打开,再访问http://20.0.0.103,即可在里面看到数据
底下的其实是一张图片,随便放的一张
Apache网页优化--压缩和缓存

看到压缩格式gzip和缓存
Apache网页优化--压缩和缓存

相关软件下载

自取
相关软件下载