|  | Apache网页与安全优化——网页压缩及缓存(理论实践相结合!) 
 Apache网页优化概述
 
 在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代
 为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化内容
 
 优化内容
 
 配置网页压缩功能
 工作模式的选择与参数优化
 配置防盗链
 配置隐藏版本号
 
 gzip介绍
 
 配置Apache的网页压缩功能,是使用gzip压缩算法来对网页进行压缩后再传输到客户端浏览器
 
 作用
 
 降低了网络传输的字节数,加快网页加载的速度
 节省流量,改善用户的浏览体验
 gzip与搜索引擎的抓取工具有着更好的关系
 
 Apache的压缩模块
 
 Apache实现网页压缩的功能模块包括
 mod_gzip模块
 mod_deflate模块
 Apache 1.x
 没有内建网页压缩技术,但可使用第三方mod_gzip模块执行压缩
 Apache 2.x
 在开发的时候,内建了mod_deflate这个模块,取代mod_gzip
 
 mod_gzip模块与mod_deflate模块比较
 
 *   两者均使用gzip压缩算法,运作原理类似
 *   mod_deflate压缩速度略快,而mod_gzip的压缩比略高
 *   mod_gzip对服务器CPU的占用要高一些
 *   高流量的服务器,使用mod_deflate可能会比mod_gzip加载速度更快
 
 启用网页压缩功能步骤
 
   环境(网页压缩实例)
 
 一台Linux服务器(192.168.13.128)
 一台win10测试机
 
 1,远程共享挂载到Linux上
 
 1)在Windows上将LAMP所需压缩软件包共享出来(此处如有问题请看之前的博客相关文章)
 
   2)在Linux上使用远程共享获取文件并挂载到/abc目录下
 
 [root@localhost httpd]# mkdir /abc   ##创建挂载点/abc
 root@lamp ~]# smbclient -L //192.168.100.3/
 Sharename       Type      Comment
 ---------       ----      -------
 LAMP-C7         Disk
 
 [root@lamp ~]# mount.cifs //192.168.100.3/LAMP-C7 /mnt
 ##远程挂载软件包到/mnt目录
 
 2,手工编译安装Apache
 
 1)将源码包解压到/opt目录下
 
 [root@lamp mnt]# cd /mnt   ##切换到/mnt目录下
 [root@lamp mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt/    ##解压源码包到/opt下
 ...
 [root@lamp mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
 ....
 [root@lampt mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
 ...
 [root@lamp mnt]# cd /opt                        //进入/opt目录
 [root@lamp opt]# ls                             //查看解压的文件
 apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  rh
 
 2)将apr组件包移动到http中并安装编译工具
 
 [root@lamp opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr
 [root@lamp opt]#  mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util
 [root@localhost opt]# yum -y install \
 gcc \                                       //c语言
 gcc-c++ \                        //c++语言
 make \                              //编译工具
 pcre-devel \                     //pcre语言工具
 expat-devel \                   //识别标签性语言工具
 perl \
 pcre \
 zlib-devel                       //数据压缩用的函式库
 
 3)配置安装目录及各种模块
 
 [root@lamp opt]# cd /opt/httpd-2.4.29/
 [root@lamp httpd-2.4.29]#./configure \                      //配置
 --prefix=/usr/local/httpd \
 --enable-deflate \  //配置压缩模块
 --enable-expires \  //配置缓存模块(下一个缓存实验需要)
 --enable-so \      //apache核心模块开启
 --enable-rewrite \    //开启重写功能,防盗链
 --enable-charset-lite \  //支持字符集,简体中文
 --enable-cgi   //通用网关接口
 ...
 
 4)编译和安装
 
 [root@lamp httpd-2.4.29]# make              //生成可执行的二进制文件
 ...
 [root@lamp httpd-2.4.29]# make install  //复制二进制文件到系统,配置应用环境
 ...
 
 5)配置http主配置文件
 
 [root@localhost httpd-2.4.29]#  cd /usr/local/httpd/
 [root@localhost httpd]# ls
 bin    cgi-bin  error   icons    lib   man     modules
 build  conf     htdocs  include  logs  manual
 [root@localhost httpd]# cd conf/             ##切换到http主配置文件中
 [root@localhost conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf   ##方便管理创建软连接
 
 ##为方便操作覆盖原启动脚本,并添加到service管理器中
 [root@localhost conf]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd                       //复制apache启动脚本覆盖httpd原始的启动脚本
 [root@localhost conf]# vim /etc/init.d/httpd
 #!/bin/sh
 # chkconfig: 35 85 21
 # description: Apache is a World Wide Web server            //在#!/bin/sh下行插入这两行内容
 [root@localhost conf]# chkconfig --add httpd         //将httpd加入到SERVICE管理器中
 
 [root@localhost conf]# vim /etc/httpd.conf  ##配置主配置文件
 
 Listen 192.168.13.128:80  ##设置监听地址
 #Listen 80
 
 ServerName www.kgc.com:80  ##设置域名
 
 LoadModule deflate_module modules/mod_deflate.so  ##启用压缩模块
 LoadModule headers_module modules/mod_headers.so   ##启用头部模块
 
 ##大G到末行添加一下内容
 LoadModule filter_module modules/mod_filter.so
 <IfModule mod_deflate.c>
 AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml test/java
 script text/jpg text/png    ##支持压缩类型
 DeflateCompressionLevel 9   ##高压缩比
 SetOutputFilter DEFLATE      ##默认过滤器加载
 </IfModule>
 [root@localhost conf]# service httpd start ##重启服务
 [root@localhost conf]# systemctl stop firewalld.service
 [root@localhost conf]# setenforce 0
 [root@localhost conf]# cd /usr/local/httpd/bin/      ##查看deflate模块启动状态
 [root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "deflate"
 deflate_module (shared)
 
 6)切换到站点,编辑网页内容
 
 [root@localhost conf]# cd ..
 [root@localhost httpd]# pwd
 /usr/local/httpd
 [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>
 
 3,在win10中安装fiddler抓包工具
 
   4,编辑网页,添加一个图片
 
 1)切换到你的共享挂载点,将图片复制到站点中
 
 [root@localhost htdocs# cd /mnt   ##切换到挂载点
 [root@localhost mnt]# cp kali.jpg /usr/local/httpd/htdocs/    ##将图片复制到站点中
 [root@localhost mnt]# cd /usr/local/httpd/htdocs/
 [root@localhost htdocs]# ls     ##查看图片复制成功
 index.html  kali.jpg
 
 2)编辑站点的首页内容
 
 [root@localhost ~]# cd /usr/local/httpd/
 [root@localhost httpd]# cd htdocs/      ##切换到站点
 [root@localhost htdocs]# ls
 index.html  kali.jpg
 [root@localhost htdocs]# vim index.html     ##编辑网页内容,将图片加入到网页中
 
 <html><body><h1>It works!</h1>
 <img src="kali.jpg"/>         ##将图片放到网页中
 </body></html>
 
 5,测试网页,查看抓包信息
 
   
 配置网页的缓存时间
 
 通过mod_expire模块配置Apache,使用网页能在客户端浏览器缓存一段时间,以避免重复请求
 启用mod_expire模块后,会自动生成页面头部信息中的Expires标签和Cache-Control标签,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的
 启用网页缓存功能步骤
 
   环境
 
 编译安装和前部分是一样的,配置加上了缓存模块,以下为配置缓存模块操作
 
 1,配置主配置文件,开启缓存模块
 
 [root@localhost httpd-2.4.29]# vim /etc/http.conf
 
 LoadModule expires_module modules/mod_expires.so    ##开启缓存模块
 
 <IfModule mod_expires.c>      ##大G末行添加配置文件
 ExpiresActive On
 ExpiresDefault "access plus 50 seconds"
 </IfModule>
 
 2,启动Apachectl,关闭防火墙并重启服务
 
 [root@localhost httpd-2.4.29]# cd /usr/local/httpd/bin   ##测试语法是否有错误
 [root@localhost bin]# ./apachectl -t
 [root@localhost bin]# ./apachectl start   ##开启
 [root@localhost bin]# systemctl stop firewalld.service    ##关闭防火墙
 [root@localhost bin]# setenforce 0
 [root@localhost bin]# ./apachectl -t -D DUMP_MODULES | grep "expires" ##查看模块开启状态
 expires_module (shared)
 
 3,重新用测试机访问网页,测试抓包
 
   谢谢阅读!!!
 
 
 
 程序猿的技术大观园:www.javathinker.net
 |  |