centos 7.6—— Apache网页压缩——网页缓存

centos 7.6—— Apache网页压缩和网页缓存

gzip 介绍

  • 配置Apache的网页压缩功能,是使用gzip 压缩算法来对网页内容进行压缩后再传输到客户端浏览器

(1)作用

  • 降低了网络传输的字节数,加快网页加载的速度
  • 节省流量,改善用户的浏览体验
  • gzip与搜索引擎的抓取工具有着更好的关系

(2)Apache的压缩模块

Apache实验网页压缩的功能模块包括

  • mod_gzip 模块
  • mod_deflate 模块

Apache 1.x

  • 没有内建网页压缩技术,但可使用第三方mod_gzip模块执行压缩

Apache 2.x

  • 在开发的时候,内建了mod_deflate这个模块,取代mod_gzip

Apache 的压缩模块

mod_gzip模块与mod_deflate 模块

  • 两者均使用gzip压缩算法,运作原理类似
  • mod_deflate 压缩速度略快,而mod_gzip 的压缩比略高
  • mod_gzip 对服务器CPU的占用要高一些
  • 高流量的服务器,使用mod_deflate 可能会比mod_gzip 加载速度更快

(3)配置网页压缩功能

启用网页压缩功能步骤

  1. 查看是否安装mod_deflate 模块
  2. 修改配置文件启用压缩功能
  3. 访问测试

一、网页压缩

(1)手工编译Apache

[root@localhost opt]# tar zxvf apr-1.6.2.tar.gz 
[root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz 
[root@localhost opt]# tar jxvf httpd-2.4.29.tar.bz2 
[root@localhost opt]# ll
总用量 8032
drwxr-xr-x. 27 1001  1001    4096 69 2017 apr-1.6.2
-rw-r--r--.  1 root root  1071074 83 14:30 apr-1.6.2.tar.gz
drwxr-xr-x. 20 ttyy ttyy     4096 54 2017 apr-util-1.6.0
-rw-r--r--.  1 root root   565507 83 14:30 apr-util-1.6.0.tar.gz
drwxr-xr-x. 11  501 games    4096 1018 2017 httpd-2.4.29
-rw-r--r--.  1 root root  6567926 83 14:30 httpd-2.4.29.tar.bz2
drwxr-xr-x.  2 root root        6 1031 2018 rh

[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost opt]#  yum -y install gcc gcc-c++ make pcre-devel expat-devel perl   ==//安装gcc的编译和pcre 包是per语言==
[root@localhost opt]#yum -y install zlib-devel   //安装压缩功能
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \
> --enable-deflate \     //加入mod_deflate模块
> --enable-expires \     //加入mod_expires模块
> --enable-so \     //开启核心功能模块,即web服务
> --enable-rewrite \
> --enable-charset-lite \
> --enable-cgi

[root@localhost httpd-2.4.25]#make
[root@localhost httpd-2.4.25]#make install
[root@promote bin]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@promote bin]# ls /etc/init.d
functions  httpd  netconsole  network  README
[root@promote bin]# vim /etc/init.d
[root@promote bin]# vim /etc/init.d/httpd 

#!/bin/sh
#chkconfig: 35 85 21 //35级别自动运行  第85个启动  第21个关闭
#description:Apache is a World Wide Web server

[root@promote local]# chkconfig --add httpd    //将httpd加入到service 管理器

[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf  /etc  //配置文件目录设置软链接
[root@localhost httpd-2.4.29]# 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

Listen 192.168.75.134:80
#Listen 80
ServerName www.kgc.com:80


*********http的主配置文件末尾添加****************

<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>

[root@localhost bin]# cd /usr/local/httpd/bin 
[root@localhost bin]# ./apachectl -t
Syntax OK
[root@localhost bin]# 
[root@localhost bin]# /usr/local/httpd/bin/httpd   //开启httpd的服务
[root@localhost bin]# iptables -F
[root@localhost bin]# setenforce 0

[root@localhost bin]# netstat -natp | grep 80
tcp        0      0 192.168.75.134:80       0.0.0.0:*               LISTEN      61850/httpd         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      8010/dnsmasq        

[root@localhost bin]# /usr/local/httpd/bin/httpd
httpd (pid 61850) already running
[root@localhost bin]# 
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "deflate"  //查看模块是否开启
 deflate_module (shared)
[root@localhost bin]#/usr/local/httpd/htdocs
[root@localhost htdocs]# ll
总用量 68
-rw-r--r--. 1 root root    45 612 2007 index.html
-rw-r--r--. 1 root root 64598 85 22:12 timg.jpg  //将图片拖至当前目录下
[root@localhost htdocs]# vim index.html 

<html><body><h1>It works!</h1></body></html>
<img src="timg.jpg"/>

*******************手工编译软件需要手工添加到环境变量文件中或者制作软链接方便之后查看配置文件************************

[root@localhost htdocs]# ln -s /usr/local/httpd/bin/* /usr/local/bin  //将Apache的配置文件的 添加软链接,之后方便查看配置文件 
[root@localhost bin]# which apachectl    
/usr/local/bin/apachectl
[root@localhost bin]# 





(2) 虚拟机win10 验证

  1. 首先在虚拟机win10 安装fiddler。
  2. 安装完成之后,去开始启动项打开
  3. 在浏览器输入192.168.75.134
  4. 查看fiddler中的图片压缩的具体数据
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、网页缓存

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

配置网页的缓存时间

启用网页缓存功能步骤

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

(1)修改httpd 的主配置文件


[root@localhost htdocs]# vim /usr/local/httpd/conf/httpd.conf 

 LoadModule expires_module modules/mod_expires.so  //去掉#号
 
********在末尾添加********************

 <IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 50 seconds"
</IfModule>

[root@localhost bin]# pwd
/usr/local/httpd/bin
[root@localhost bin]# ./apachectl -t  //验证配置文件语法是否正确
Syntax OK
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "expires"
 expires_module (shared)
[root@localhost bin]# 
[root@localhost bin]# /usr/local/httpd/bin/httpd
httpd (pid 61850) already running
[root@localhost bin]# 



(2)虚拟机win10 验证

  1. 清空虚拟机win10 浏览器的缓存,重新打开fiddler

在这里插入图片描述

在这里插入图片描述

三、小结

(1) yum自动安装Apache和手工编译安装Apache区别

  1. 安装路径不同
    yum自动安装配置文件路径默认: /etc/httpd/conf/httpd.conf
    手工编译安装是自定义安装路径

  2. 开启的服务不同
    yum自动安装的是开启默认的httpd功能
    手工编译是自动安装编译的功能

  3. 环境变量的添加
    yum自动安装不需要手动添加到环境变量中
    手工编译需要手动添加到环境变量中并且使用软链接才能方便之后调用配置文件

  4. 网页文件的 存在的路径不同
    yum自动安装网页文件默认在 /var/www/html
    手工编译: /usr/local/httpd/htdocs (前提是安装的配置文件的路径自定义是/usr/local/httpd中)

猜你喜欢

转载自blog.csdn.net/weixin_42099301/article/details/107825015
今日推荐