Apache网页优化:压缩、缓存、防盗链、隐藏版本

Apache网页优化概述

■在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代
■为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容

优化内容:

  • 配置网页压缩功能
  • 配置网页的缓存时间
  • 配置防盗链
  • 配置隐藏版本号

一:配置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 加载速度更快

示例步骤:
1,编译安装Apache服务
[root@localhost ~]# mkdir /abc     
[root@localhost ~]# smbclient -L //192.168.10.56/     
[root@localhost ~]# mount.cifs //192.168.10.56/share /abc     //挂载及解压安装包
Password for root@//192.168.10.56/share:  
[root@localhost ~]# df -h
[root@localhost abc]# tar zvxf apr-1.6.2.tar.gz -C /opt
[root@localhost abc]# tar zxvf apr-util-1.6.0.tar.gz -C /opt
[root@localhost abc]# tar zxvf httpd-2.4.2.tar.gz -C /opt
[root@localhost abc]# cd /opt
[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.2  rh 
 //把两个底层运行的工具包移动到httpd源码包的srclib中
[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.2/srclib/apr       
[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.2/srclib/apr-util
[root@localhost opt]# cd httpd-2.4.2/
[root@localhost httpd-2.4.2]# yum install gcc gcc-c++ pcre pcre-devel zlib-devel make -y
[root@localhost httpd-2.4.2]# 
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

[root@localhost httpd-2.4.2]# make && make install
[root@localhost httpd-2.4.2]# grep -v "#" /usr/local/httpd/bin/apachectl > /etc/init.d/httpd
[root@localhost httpd-2.4.2]# vim /etc/init.d/httpd
#首行添加下面三行官方注释语句
#!/bin/sh
#chkconfig:2345 85 15
#description:Apache is a World Wide Web server.

[root@localhost httpd-2.4.2]# chmod +x /etc/init.d/httpd
[root@localhost httpd-2.4.2]# chkconfig --add httpd         //把http加入server管理器
[root@localhost httpd-2.4.2]# chkconfig --list httpd
[root@localhost httpd-2.4.2]# chkconfig --level 35 httpd on   //设置开机自启动

[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf    //建立软链接便于管理
[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/bin/* /usr/local/bin    //建立软链接便于管理命令

[root@localhost init.d]# cd /usr/local/httpd/htdocs
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim index.html
#默认首页内容:添加照片途径
<htmL><body<h1>this is a maomi!</h1>
<img src="mao.jpg"/>
</body</html>

[root@localhost htdocs]# cp /abc/mao.jpg /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
index.html  mao.jpg
2,修改主配置文件httpd.conf
[root@localhost httpd-2.4.2]# vim /etc/httpd.conf
#开启并修改域名:
#开启并修改成本机监听地址:
#把ipv6注释掉,Listen前加#号:
#开启压缩功能,把LoadModule前面的#去掉:
ServerName www.kgc.com:80   
Listen 192.168.17.129:80  
#Listen 80   
LoadModule deflate_module modules/mod_deflate.so 
#大G到末行,添加:
<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>

3,查看是否安装了mod_deflate模块,并检查语法是否无误
[root@localhost httpd-2.4.2]# apachectl -t -D DUMP_MODULES | grep "deflate"       //检验模块
 deflate_module (shared)
[root@localhost httpd-2.4.2]# apachectl -t   // 检查语法
Syntax OK
4,重启httpd服务
[root@localhost init.d]# systemctl stop firewalld
[root@localhost init.d]# setenforce 0
[root@localhost init.d]# systemctl start httpd
[root@localhost init.d]# netstat -ntap | grep 80
5,访问测试网站,使用抓包工具Fiddler进行数据抓取分析

在这里插入图片描述

二:配置网页的缓存时间

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

步骤:

1,编译安装Apache服务

注:编译安装时 ,要把mod_expires缓存功能模块 添加进去

" ./configure --enable-expires "

[root@localhost ~]# mkdir /abc
[root@localhost ~]# smbclient -L //192.168.10.56/
[root@localhost ~]# mount.cifs //192.168.10.56/share /abc
Password for root@//192.168.10.56/share:  
[root@localhost ~]# df -h
[root@localhost abc]# tar zvxf apr-1.6.2.tar.gz -C /opt
[root@localhost abc]# tar zxvf apr-util-1.6.0.tar.gz -C /opt
[root@localhost abc]# tar zxvf httpd-2.4.2.tar.gz -C /opt
[root@localhost abc]# cd /opt
[root@localhost opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.2  rh 
[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.2/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.2/srclib/apr-util
[root@localhost opt]# cd httpd-2.4.2/
[root@localhost httpd-2.4.2]#    配置时添加缓存模块
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-expires \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

[root@localhost httpd-2.4.2]# make && make install
[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
[root@localhost httpd-2.4.2]# vim /etc/init.d/httpd
#首行添加下面三行官方注释语句
#!/bin/sh
#chkconfig:2345 85 15
#description:Apache is a World Wide Web server.

[root@localhost httpd-2.4.2]# chmod +x /etc/init.d/httpd
[root@localhost httpd-2.4.2]# chkconfig --add httpd
[root@localhost httpd-2.4.2]# chkconfig --list httpd
[root@localhost httpd-2.4.2]# chkconfig --level 35 httpd on

[root@localhost httpd-2.4.2]# cp /abc/mao.jpg /usr/local/httpd/htdocs
[root@localhost httpd-2.4.2]# cd /usr/local/httpd/htdocs
[root@localhost htdocs]# ls
index.html  mao.jpg
[root@localhost htdocs]# vim index.html
#默认首页内容:添加照片途径
<html><body><h1>this is a maomi!</h1>
  <img src="mao.jpg"/>
</body></html>
2,修改主配置文件httpd.conf

启用mod_ expires模块 ,并设置http协议下任意格式的文档均60秒后过期

[root@localhost httpd-2.4.2]# vim /etc/httpd.conf
#开启并修改域名:
#开启并修改成本机监听地址:
#把ipv6注释掉,Listen前加#号:
ServerName www.kgc.com:80   
Listen 192.168.17.129:80  
#Listen 80   

#开启缓存模块功能,把LoadModule 前的#号去掉
LoadModule expires_module modules/mod_expires.so

#添加缓存模块内容,缓存时间设置50秒:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 50 seconds"
</IfModule>
3,查看是否安装了mod_expire模块,并检验语法是否有误

命令:#/usr/local/apache/bin/apachectl -t -D DUMP_ MODULES
如果输出中没有“expires_module (static) ”,则说明编译时没有安装mod_expires

[root@localhost httpd-2.4.2]# apachectl -t -D DUMP_MODULES | grep "expires"       检验expires缓存模块是否安装
 expires_module (shared)
[root@localhost httpd-2.4.2]# apachectl -t   检验语法是否有误
4,重启httpd服务
[root@localhost httpd-2.4.2]# service httpd start      
[root@localhost httpd-2.4.2]# netstat -ntap | grep 80      //查看httpd端口是否开启
[root@localhost httpd-2.4.2]# systemctl stop firewalld     //关闭防火墙
[root@localhost httpd-2.4.2]# setenforce 0                //关闭增强性安全功能
5,访问测试网站,使用抓包工具Fiddler进行数据抓取分析

在这里插入图片描述

三:配置Apache实现防盗链

■防盗链就是防止别人的网站代码里面盗用服务器的图片、文件、视频等相关资源.
■如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力
■所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用

步骤:
1,正常网站配置:

注:配置编译安装时 ,要把mod_rewrite缓存功能模块 添加进去

" ./configure --enable-rewrite "

[root@localhost ~]# mkdir /abc
[root@localhost ~]# smbclient -L //192.168.10.56/
[root@localhost ~]# mount.cifs //192.168.10.56/share /abc
Password for root@//192.168.10.56/share:  
[root@localhost ~]# df -h
[root@localhost abc]# tar zvxf apr-1.6.2.tar.gz -C /opt
[root@localhost abc]# tar zxvf apr-util-1.6.0.tar.gz -C /opt
[root@localhost abc]# tar zxvf httpd-2.4.2.tar.gz -C /opt
[root@localhost abc]# cd /opt
[root@localhost opt]# mv apr-1.6.2/ httpd-2.4.2/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0/ httpd-2.4.2/srclib/apr-util
[root@localhost opt]# cd httpd-2.4.2/
[root@localhost httpd-2.4.2]# 
./configure \
--prefix=/usr/local/httpd \
--enable-deflate \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi

[root@localhost httpd-2.4.2]# make && make install
[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/bin/* /usr/local/bin
[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@localhost httpd-2.4.2]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf

[root@localhost httpd-2.4.2]# vim /etc/init.d/httpd
#首行添加下面三行官方注释语句
#!/bin/sh
#chkconfig:2345 85 15
#description:Apache is a World Wide Web server.

[root@localhost httpd-2.4.2]# chmod +x /etc/init.d/httpd
[root@localhost httpd-2.4.2]# chkconfig --add httpd
[root@localhost httpd-2.4.2]# chkconfig --list httpd
[root@localhost httpd-2.4.2]# chkconfig --level 35 httpd on

[root@localhost httpd-2.4.2]# vim /etc/httpd.conf
#开启并修改域名:
#开启并修改成本机监听地址:
#把ipv6注释掉,Listen前加#号:
ServerName www.kgc.com:80   
Listen 192.168.17.129:80  
#Listen 80   

[root@localhost httpd-2.4.2]# yum install bind -y
[root@localhost httpd-2.4.2]# vim /etc/named.conf
 #/127 查找,并更改:
 #/localhost 查找,并更改:
 
 listen-on port 53 { any; };
  allow-query { any; };

[root@localhost httpd-2.4.2]# vim /etc/named.rfc1912.zones
  #更改区域数据配置文件 
   zone "kgc.com"  IN {
          type master ;
          file "kgc.com.zone";
          allow-update { none; };
    };

[root@localhost named]# cd /var/named/
[root@localhost named]# ls
[root@localhost named]# cp -p named.localhost kgc.com.zone
[root@localhost named]# vim kgc.com.zone
#把末行4个A一行删掉
#末行添加一行,域名对应本机IP地址
www IN A    192.168.17.129

[root@localhost named]# systemctl start named
[root@localhost named]# cp /abc/LAMP/mao.jpg /usr/Local/httpd/htdocs/
[root@Localhost named]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
game.jpg index.htmL
[root@localhost htdocs ]# vim index.html
<htmL><body>
<h1>this is a maomi!</h1> 
<img src="mao.jpg"/>
</body>
</html>

[rootalocathost htdocs]# service httpd start
[root@localhost htdocs]# systemctl stop firewalld. service
[root@localhost htdocs]# setenforce 0
2,盗链网站简单配置:
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@Localhost ~]# yum install httpd -y
[root@localhost ~]# cd /var/www/html/
[root@Localhost htm1]# vim index.html
#设置默认首页,添加盗链图片路径,可写域名路径,也可写IP地址为路径
<html>
<body>
<h1>this is test web</h1>
<img src= "http://www.kgc.com/mao.jpg"/>
</body>
</html>

[root@localhost htmL]# systemctl start httpd 

3,在Win10测试网页,看盗链网站是否盗链成功

在这里插入图片描述
在这里插入图片描述
盗链网站 盗链成功,下面设置防盗链。

4,设置防盗链,修改主配置文件httpd.conf

■配置规则变量说明:

%{HTTP_ _REFERER} : 浏览header中的链接字段,存放一个链接的URL ,代表是从哪个链接访问所需的网页
!^ : 不以后面的字符串开头
.*$ : 以任意字符结尾
NC : 不区分大写
R: 强制跳转

■规则匹配说明:
RewriteEngine On : 打开网页重写功能
RewriteCond : 设置匹配规则
RewriteRule : 设置跳转动作
■规则匹配:
如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不匹配,则往后的规则不再匹配

●修改配置文件启用防盗链功能并设置规则:

[root@localhost httpd-2.4.2]# vim /etc/httpd.conf
#开启防盗链功能,把#号去掉
LoadModule rewrite_module modules/mod_rewrite.so 

在“ #    
     Require all granted ”后添加:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://kgc.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://kgc.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.kgc.com/$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.kgc.com/error.png [R,NC]

[root@localhost abc]# cp /abc/error.png /usr/local/httpd/htdocs
[root@localhost abc]# cd /usr/local/httpd/htdocs
[root@localhost htdocs]# ls
error.png  index.html  mao.jpg
5,检验模块并重启服务
[root@localhost httpd-2.4.2]# apachectl -t -D DUMP_MODULES  | grep "rewrite"         查看是否安装了mod_rewrite模块
[root@Localhost htdocs]# service httpd restart
6,测试官方网站防盗链设置是否成功

在这里插入图片描述

四:配置Apache 隐藏版本信息

Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患,生产环境中要配置Apache隐藏版本信息,可使用Fiddler抓包工具分析

  • 配置Apache隐藏版本信息
    将主配置文件httpd.conf以下行注释去掉
    修改httpd-default. conf文件两个地方
    ServerTokens Full修改为ServerTokens Prod
1,未设置版本隐藏功能前,可以看到apache 的版本信息

在这里插入图片描述

2,更改配置文件,设置开启隐藏功能
[root@localhost htdocs]# vim /etc/httpd.conf
# 把Include前的#号去掉,开启隐藏版本功能
Include conf/extra/httpd-default.conf

[root@localhost htdocs]#cd /usr/local/httpd/conf/extra
[root@Localhost extra]# vim httpd-default.conf
#ServerTokens Full修改为ServerTokens Prod
#把ServersSignature On修改为ServersSignature Off
ServerTokens Prod
ServersSignature Off
3,重启httpd服务,访问网站,抓包测试版本是否隐藏成功
[root@locathost extra]# service httpd restart

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值