Apache优化之压缩
前言
在网页中,我们可以看见很多的图片、文字、视频等等,图片和视频往往在一个网页中占用的很多的资源,我们有时候会遇到这样的情况:图片或者视频加载到一半就打不开了,这样不仅浪费的流量,而且给用户的体验极差。为了解决这个问题,就有了在Apache里面添加压缩模块,将制定的信息进行压缩。今天我们就来看看,Apache里面将信息压缩是怎么一个情况。
实验环境
VMware Workstation
centos7虚拟机一台
win10主机一台
Apache源码包
链接:https://pan.baidu.com/s/1au7ot3urRkBCfP7247mKoQ
提取码:y3m7
实验步骤
1.查看httpd服务是否安装,并关闭防火墙
[root@localhost ~]# rpm -q httpd
未安装软件包 httpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
2.将apr包解压到/opt目录下面
[root@localhost ~]# ls
anaconda-ks.cfg apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 公共 视频 文档 音乐
apr-1.6.2.tar.gz awstats-7.6.tar.gz initial-setup-ks.cfg 模板 图片 下载 桌面
[root@localhost ~]# tar -zxvf apr-1.6.2.tar.gz -C /opt/
[root@localhost ~]# tar -zxvf apr-util-1.6.0.tar.gz -C /opt/
[root@localhost ~]# tar -jxvf httpd-2.4.29.tar.bz2 -C /opt/
3.将/opt目录下的apr包放入httpd-2.4.29中的指定位置
[root@localhost ~]# cd /opt
[root@localhost opt]# ls
apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 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]# ls
httpd-2.4.29 rh
4.将编译安装的环境先下载好,并且查看安装包是否装完
[root@localhost opt]# yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel make expat-devel
[root@localhost opt]# rpm -q gcc
gcc-4.8.5-39.el7.x86_64
[root@localhost opt]# rpm -q gcc-c++
gcc-c++-4.8.5-39.el7.x86_64
[root@localhost opt]# rpm -q pcre
pcre-8.32-17.el7.x86_64
[root@localhost opt]# rpm -q pcre-devel
pcre-devel-8.32-17.el7.x86_64
[root@localhost opt]# rpm -q zlib-devel
zlib-devel-1.2.7-18.el7.x86_64
[root@localhost opt]# rpm -q make
make-3.82-24.el7.x86_64
[root@localhost opt]# rpm -q expat-devel
expat-devel-2.1.0-10.el7_3.x86_64
5.开始编译
[root@localhost opt]# cd httpd-2.4.29/
[root@localhost httpd-2.4.29]# ls
ABOUT_APACHE BuildBin.dsp emacs-style LAYOUT NOTICE srclib
acinclude.m4 buildconf httpd.dep libhttpd.dep NWGNUmakefile support
Apache-apr2.dsw CHANGES httpd.dsp libhttpd.dsp os test
Apache.dsw CMakeLists.txt httpd.mak libhttpd.mak README VERSIONING
apache_probes.d config.layout httpd.spec LICENSE README.cmake
ap.d configure include Makefile.in README.platforms
build configure.in INSTALL Makefile.win ROADMAP
BuildAll.dsp docs InstallBin.dsp modules server
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \
> --enable-deflate \ //开启压缩模块
> --enable-so \
> --enable-rewrite \
> --enable-charset-lite \
> --enable-cgi
[root@localhost httpd-2.4.29]# make && make install
6.创建软链接,便于以后的操作和管理
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/
[root@localhost httpd]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@localhost httpd]# cd conf/
[root@localhost conf]# ls
extra httpd.conf magic mime.types original
[root@localhost conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
7.修改Apache的主配置文件,并检查一下语法
[root@localhost conf]# vim /etc/httpd.conf
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule filter_module modules/mod_filter.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>
Listen 192.168.73.148:80
#Listen 80
ServerName www.hello.com:80
[root@localhost conf]# /usr/local/httpd/bin/apachectl -t
Syntax OK
8.启动服务,查看并验证模块
[root@localhost conf]# /usr/local/httpd/bin/apachectl start
[root@localhost conf]# cd ..
[root@localhost httpd]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
[root@localhost httpd]# cd htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# cat index.html
<html><body><h1>It works!</h1></body></html>
[root@localhost htdocs]# cd /usr/local/httpd/bin/
[root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "deflate"
deflate_module (shared)
9.在win10主机里面看看
10.我们在Apache服务器的站点添加一个图片
[root@localhost bin]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
E2A44F9213403D04017939019ADDED89.gif index.html
[root@localhost htdocs]# vim /usr/local/httpd/htdocs/index.html
<html><body><h1>It works!</h1>
<img src="E2A44F9213403D04017939019ADDED89.gif" \></body></html>
在win10主机中测试
实验总结
这个实验中遇到了一个问题,就是win10主机中自带的浏览器不知道为什么,就是无法访问Apache,所以,就下载了个谷歌浏览器,然后发现实验一下浏览器一下子就出来了。有时候,我们Apache访问出不来的时候,就有可能是防火墙没有关闭,或者就是浏览器的问题。