centos 7.6—— Apache网页压缩和网页缓存
文章目录
-
centos 7.6—— Apache网页压缩和网页缓存 - gzip 介绍
- 一、网页压缩
- (1)手工编译Apache
- (2) 虚拟机win10 验证
- 二、网页缓存
- 三、小结
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)配置网页压缩功能
启用网页压缩功能步骤
- 查看是否安装mod_deflate 模块
- 修改配置文件启用压缩功能
- 访问测试
一、网页压缩
(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 6月 9 2017 apr-1.6.2
-rw-r--r--. 1 root root 1071074 8月 3 14:30 apr-1.6.2.tar.gz
drwxr-xr-x. 20 ttyy ttyy 4096 5月 4 2017 apr-util-1.6.0
-rw-r--r--. 1 root root 565507 8月 3 14:30 apr-util-1.6.0.tar.gz
drwxr-xr-x. 11 501 games 4096 10月 18 2017 httpd-2.4.29
-rw-r--r--. 1 root root 6567926 8月 3 14:30 httpd-2.4.29.tar.bz2
drwxr-xr-x. 2 root root 6 10月 31 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 6月 12 2007 index.html
-rw-r--r--. 1 root root 64598 8月 5 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 验证
- 首先在虚拟机win10 安装fiddler。
- 安装完成之后,去开始启动项打开
- 在浏览器输入192.168.75.134
- 查看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 验证
- 清空虚拟机win10 浏览器的缓存,重新打开fiddler
三、小结
(1) yum自动安装Apache和手工编译安装Apache区别
-
安装路径不同
yum自动安装配置文件路径默认: /etc/httpd/conf/httpd.conf
手工编译安装是自定义安装路径 -
开启的服务不同
yum自动安装的是开启默认的httpd功能
手工编译是自动安装编译的功能 -
环境变量的添加
yum自动安装不需要手动添加到环境变量中
手工编译需要手动添加到环境变量中并且使用软链接才能方便之后调用配置文件 -
网页文件的 存在的路径不同
yum自动安装网页文件默认在 /var/www/html
手工编译: /usr/local/httpd/htdocs (前提是安装的配置文件的路径自定义是/usr/local/httpd中)