Apache—网页和安全优化(网页压缩,网页缓存,隐藏版本,防盗链)

一、Apache网页优化

1.1 概述

在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代
为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容
优化内容
● 配置网页压缩功能
● 配置网页缓存
● 工作模式的选择与参数优化
● 配置隐藏版本号
● 配置防盗链
● …

1.2 gzip介绍

配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器
作用
● 降低了网络传输的字节数,加快网页加载的速度
● 节省流量,改善用户的浏览体验
● gzip与搜索引擎的抓取工具有着更好的关系

1.3 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加载速度更快

配置网页压缩功能
启用网页压缩功能步骤
● 查看是否安装mod_deflate 模块
● 修改配置文件,启用压缩功能
● 访问测试

1.31 配置网页压缩项目实操

导入软件包:apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.bz2

1、tar解包

tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr   #将依赖包放入安装包srclib源库内
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
yun安装依赖包:yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel zlib-devel perl

2、./configure配置

[root@server1 ~]# cd httpd-2.4.29/           #进入httpd主目录
[root@server1 httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi --enable-cgid --enable-deflate --enable-expires

3、make编译和安装

[root@server1 httpd-2.4.29]# make && make install    #编译并安装

4、Apache开机自启动

[root@server1 httpd-2.4.29]# cd
[root@server1 ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd    #能自启动
[root@server1 ~]# vi /etc/init.d/httpd         #添加
#chkconfig: 35 85 21       #35级别图形化界面自动运行,第85个启动,第21个关闭
#description: Apache HTTP Server           #描述信息
[root@server1 ~]# chkconfig --add httpd    #将httpd加入到SERVICE管理器
[root@server1 ~]# chkconfig --list    #检查一下http的35是开的

在这里插入图片描述

[root@server1 ~]# systemctl enable httpd       #开启服务自启动

5、配置文件

[root@server1 ~]# ln -s /usr/local/httpd/conf/httpd.conf /etc/    #链接到/etc下方便管理
[root@server1 ~]# ln -s /usr/local/httpd/bin/* /usr/bin/    #把所有命令链接到/usr/bin/下
[root@server1 ~]# vi /etc/httpd.conf      #修改配置文件
ServerName www.aa.com:80      #修改名称,去掉#注释
[root@server1 ~]# systemctl stop firewalld       #关闭防火墙
[root@server1 ~]# setenforce 0
[root@server1 ~]# vi /etc/httpd.conf     修改配置
LoadModule deflate_module modules/mod_deflate.so   #启用功能,消除注释#

在这里插入图片描述

[root@server1 ~]# systemctl restart httpd    #启用Apache服务
[root@server1 ~]# apachectl -D DUMP_MODULES | grep deflate     #查看模块是否开启

在这里插入图片描述

[root@server1 ~]# vi /etc/httpd.conf             #末尾新增压缩类型,压缩方式,压缩比
</IfModule>
SetOutPutFilter DEFLATE
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript text/xml image/png image/jpg image/jpeg application/x-httpd-php application/x-javascript

在这里插入图片描述

[root@server1 ~]# httpd -t       #检查语法
Syntax 0K
[root@server1 ~]# apachectl -t    #检查语法
Syntax 0K
[root@server1 ~]# systemctl restart httpd
echo "<h1>this is hi</h1>" > /usr/local/httpd/htdocs/index.html
[root@server1 ~]# apachectl -D DUMP_MODULES | grep deflate  

在这里插入图片描述

在浏览器上访问
在这里插入图片描述

1.4 配置网页的缓存时间

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

1.41 配置网页缓存项目实操

[root@server1 ~]# apachectl -D DUMP_MODULES | grep expires
[root@server1 ~]# vi /etc/httpd.conf   #删掉注释,开启模块

在这里插入图片描述

[root@server1 ~]# vi /etc/httpd.conf   #进入配置文件修改缓存时间参数
<IfModule mod_expires.c>
             ExpiresActive On
             ExpiresDefault "access plus 2 days "    #缓存时间为2</IfModule>
[root@server1 ~]# systemctl restort httpd

在这里插入图片描述

二、Apache安全优化

2.1 配置Apache隐藏版本信息

Apache的版本信息,透露了一定的漏洞信息,从而给网站带来安全隐患
生产环境中要配置Apache隐藏版本信息

2.11 ServerTokens的一些可能的赋值

● ServerTokens Prod 显示"Server: Apache"
● ServerTokens Major 显示"Server: Apache/2"
● ServerTokens Minor 显示"Server: Apache/2.2 "
● ServerTokens Min显示"Server: Apache/2.2. 17"
● ServerTokens OS显示"Server: Apache/2.2.17 (Unix)"
● ServerTokens Full 显示"Server: Apache/2.2. 17 (Unix) PHP/5.3.5"

2.12 隐藏版本项目实操

[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-default.conf    #修改配置文件
#修改为ServerTokens Prod
ServerSignature off     #修改关闭签名

在这里插入图片描述

[root@server1 ~]# vi /etc/httpd.conf   #删除注释#启用

在这里插入图片描述

[root@server1 ~]# systemctl stop httpd
[root@server1 ~]# systemctl start httpd

在这里插入图片描述

#成功隐藏Apache 版本号

2.2 配置Apache实现防盗链

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

2.21 防盗链实验项目实操

[root@server1 ~]# cd /usr/local/httpd/htdocs/
[root@server1 htdocs]# rm -rf index.html

访问20.0.0.10查看
在这里插入图片描述

重新打开一台新的客户机yum安装Apache

[root@server2 ~]# yum -y install httpd
[root@server2 ~]# vi /var/www/html/index.html
[root@server2 ~]# systemctl stop firewalld 
[root@server2 ~]# setenforce 0
[root@server2 ~]# systemctl start httpd
[root@server2 ~]# vi /var/www/html/index.html
<html><body>this is my web site.<img src="http://20.0.0.10/a.jpg"/></body></html>

登录第二台客户机
在这里插入图片描述

盗用成功

[root@server1 htdocs]# vi /etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so  #删除注释
#修改参数
AllowOverride All
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://20.0.0.10/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://20.0.0.10/* [NC]
RewriteCond %{HTTP_REFERER} !^http://20.0.0.10$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://20.0.0.10/error.png [R,NC]

重新输入第二台客户机地址
在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页