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目录下
[ httpd]# mkdir /abc ##创建挂载点/abc
~]# smbclient -L //192.168.100.3/
Sharename Type Comment
LAMP-C7 Disk
[ ~]# mount.cifs //192.168.100.3/LAMP-C7 /mnt
##远程挂载软件包到/mnt目录
2,手工编译安装Apache
1)将源码包解压到/opt目录下
[ mnt]# cd /mnt ##切换到/mnt目录下 [ mnt]# tar zxvf apr-1.6.2.tar.gz -C /opt/ ##解压源码包到/opt下 ... [ mnt]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/ .... [ mnt]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/ ... [ mnt]# cd /opt //进入/opt目录 [ opt]# ls //查看解压的文件 apr-1.6.2 apr-util-1.6.0 httpd-2.4.29 rh
2)将apr组件包移动到http中并安装编译工具
[ opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr [ opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util [ opt]# yum -y install gcc \ //c语言 gcc-c++ \ //c++语言 make \ //编译工具 pcre-devel \ //pcre语言工具 expat-devel \ //识别标签性语言工具 perl pcre zlib-devel //数据压缩用的函式库
3)配置安装目录及各种模块
[ opt]# cd /opt/httpd-2.4.29/ [ httpd-2.4.29]#./configure \ //配置 --prefix=/usr/local/httpd \ --enable-deflate \ //配置压缩模块 --enable-expires \ //配置缓存模块(下一个缓存实验需要) --enable-so \ //apache核心模块开启 --enable-rewrite \ //开启重写功能,防盗链 --enable-charset-lite \ //支持字符集,简体中文 --enable-cgi //通用网关接口 ...
4)编译和安装
[ httpd-2.4.29]# make //生成可执行的二进制文件 ... [ httpd-2.4.29]# make install //复制二进制文件到系统,配置应用环境 ...
5)配置http主配置文件
[ httpd-2.4.29]# cd /usr/local/httpd/ [ httpd]# ls bin cgi-bin error icons lib man modules build conf htdocs include logs manual [ httpd]# cd conf/ ##切换到http主配置文件中 [ conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf ##方便管理创建软连接 ##为方便操作覆盖原启动脚本,并添加到service管理器中 [ conf]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //复制apache启动脚本覆盖httpd原始的启动脚本 [ conf]# vim /etc/init.d/httpd #!/bin/sh # chkconfig: 35 85 21 # description: Apache is a World Wide Web server //在#!/bin/sh下行插入这两行内容 [ conf]# chkconfig --add httpd //将httpd加入到SERVICE管理器中 [ 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> [ conf]# service httpd start ##重启服务 [ conf]# systemctl stop firewalld.service [ conf]# setenforce 0 [ conf]# cd /usr/local/httpd/bin/ ##查看deflate模块启动状态 [ bin]# ./apachectl -t -D DUMP_MODULES | grep "deflate" deflate_module (shared)
6)切换到站点,编辑网页内容
[ conf]# cd .. [ httpd]# pwd /usr/local/httpd [ httpd]# cd htdocs/ [ htdocs]# ls index.html [ htdocs]# cat index.html <html><body><h1>It works!</h1></body></html>
3,在win10中安装fiddler抓包工具
4,编辑网页,添加一个图片
1)切换到你的共享挂载点,将图片复制到站点中
[ htdocs# cd /mnt ##切换到挂载点 [ mnt]# cp kali.jpg /usr/local/httpd/htdocs/ ##将图片复制到站点中 [ mnt]# cd /usr/local/httpd/htdocs/ [ htdocs]# ls ##查看图片复制成功 index.html kali.jpg
2)编辑站点的首页内容
[ ~]# cd /usr/local/httpd/ [ httpd]# cd htdocs/ ##切换到站点 [ htdocs]# ls index.html kali.jpg [ 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,配置主配置文件,开启缓存模块
[ 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,关闭防火墙并重启服务
[ httpd-2.4.29]# cd /usr/local/httpd/bin ##测试语法是否有错误 [ bin]# ./apachectl -t [ bin]# ./apachectl start ##开启 [ bin]# systemctl stop firewalld.service ##关闭防火墙 [ bin]# setenforce 0 [ bin]# ./apachectl -t -D DUMP_MODULES | grep "expires" ##查看模块开启状态 expires_module (shared)
3,重新用测试机访问网页,测试抓包
谢谢阅读!!!
相关推荐
学习web前端 2020-11-09
天空一样的蔚蓝 2020-10-23
curiousL 2020-08-03
sochrome 2020-07-29
SoarFly00 2020-06-28
LeoHan 2020-06-02
GimmeS 2020-05-15
逸璞丷昊 2020-03-08
DAV数据库 2020-05-07
Vampor 2020-05-01
ROES 2020-04-22
lifeforbug 2020-03-18
zhangwentaohh 2020-03-04
Freshairx 2020-11-10
liuyuchen 2020-10-27
chenhaimeimeng 2020-08-15
东哥笔记 2020-08-14
幸运小侯子 2020-08-14
vanturman 2020-08-01
shawls 2020-07-29
buaichidoufu 2020-07-28
guoyun0 2020-07-19
LinuxJob 2020-06-26
韩学敏 2020-06-17