超级详细!!!Apache 网页与安全优化

Apache网页优化

在使用Apache作为Web服务器的过程中,只有对Apache服务器进行适当的优化配置,才能让Apache发挥出更好
的性能;反过来说,如果Apache的配置非常糟糕,Apache可能无法正常为我们服务。因此,根据实际的应用需求
对Apache服务器的配置进行一定的优化是必不可少的。
###网页压缩###
网站的访问速度是由多个因素所共同决定的,这些因素包括应用程序的响应速度、网络带宽、服务器性能、
与客户端之间的网络传输速度等等。其中最重要的一个因素是Apache本身的响应速度,因此当运维人员为网
站性能所苦恼时,第一个需要着手进行处理的便是尽可能的提升Apache的执行速度,可以使用网页压缩提升
应用程序的速度。而且非常重要的是,它完全不需要任何的成本,只不过是会让服务器CPU占用率稍微提升一
两个百分点或者更少。

1.gzip介绍
gzip是一种流行的文件压缩算法,现在的应用十分广泛,尤其是在Linux平台。当应用gzip压缩到一个纯文
本文件时,效果是非常明显的,大约可以减少70%以上的文件大小。利用Apache中的gzip模块,我们可以使用
gzip压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端浏览器。这样经过压缩后实际上降
低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度。
网页加载速度加快的好处不言而喻,除了节省流量,改善用户的浏览体验外,另一个潜在的好处是gzip与
搜索引擎的抓取工具有着更好的关系。
2.HITP压缩的过程
Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持 HTTР压缩(Accept-Encoding
信息),如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名,如果请求文件是HTML、CSS等静态文件
,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件。如果请求文件的压缩文件不存在
,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件,如果请求文件
的最新压缩文件已经存在,则直接返回请求文件的压缩文件。如果请求文件是动态文件,Web服务器动态压缩
内容并返回浏览器,压缩内容不存放到压缩缓存目录中。
3、Apache的压缩模块
Apache1.x系列没有内建网页压缩技术,使用的是额外的第三方mod_gzip模块来执行压缩。而Apache2.x官
方在开发的时候,就把网页压缩考虑进去,内建了mod_deflate这个模块,用以取代mod_gzip。两者都是使用
的gzip压缩算法,它们的运作原理是类似的。mod_deflate压缩速度略快而mod_gzip的压缩比略高。一般默认
情况下,mod_gzip会比 mod_deflate 多出4%~6%的压缩量。
一般来说mod_gzip对服务器CPU的占用要高一些。mod_deflate是专门为确保服务器的性能而使用的一个压
缩模块,mod_deflate需要较少的资源来压缩文件。这意味着在高流量的服务器,使用mod_deflate可能会比
mod_gzip 加载速度更快。
简而言之,如果网站访问量较小,想要加快网页的加载速度,就使用mod_gzip.虽然
会额外耗费一些服务器资源,但也是值得的。如果网站访问量较大、使用的是共享虚拟主机,且所分配系统
资源有限,那么使用mod_deflate将会是更好的选择。
另外,从Apache2.0.45开始,mod_deflate模块可使用DeflateCompressionLevel指令来设置压缩级别。该指令
的值可为1至(压缩速度最快,最低的压缩质量)9(最慢的压缩速度,压缩率最高)之间的整数,其默认值为6
(压缩速度和压缩质量较为平衡的值)。这个简单的变化更是使得mod_deflate可以轻松媲美mod_gzip的压缩

4. mod_deflate模块
(1)检查是否安装了mod_deflate模块
[root@localhost~]# apachectl -D DUMP_MODULES |grep “deflate”
(2)安装mod_deflate模块
如果没有安装mod_deflate模块,需要停止Apache服务,重新编译安装Apache,参数中加入mod_deflate模块内容
[root@localhost~]# systemctl stop httpd
[root@localhost~]# cd /opt/httpd-2.4.29/
[root@localhost httpd-2.4.29]#./configure l
–prefix=/usr/local/httpd
–enable-so
–enable-rewrite
–enable-charset-lite
–enable-cgil
–enable-cgid l
–enable-deflatel
####enable-deflate加入mode deflate模块###
[root@localhost httpd-2.4.29]#make&& make install

(3)配置mod_deflate模块启用
编译安装后,mod_deflate模块需要在httpd.conf文件启用才能生效。
[root@localhost httpd-2.4.29]vi/usr/local/httpd/conf/httpd.conf
#############省略httpd.conf文件内容,文件末尾加入以下内容启用mod_deflate模块

第一行代表对什么样的内容启用gzip压缩,
第二行代表压缩级别,
第三行代表启用deflate模块对本站点的输出进行gzip压缩。

-注意中文乱码问题解决方法如下-----
vi/etc/httpd.conf
AddDefaultCharset utf-8
service httpd restart
(4)检测httpd.conf 语法并重启服务使配置生效
[root@localhost httpd-2.4.29]# httpd -t
Syntax oK
[root@localhost httpd-2.4.29]# systemctl restart httpd
把b照片传入/usr/local/httpd/htdocs/目下
[root@localhost httpd-2.4.29]# cd /usr/local/httpd/htdocs/
-----测试页----

--压缩测试页--

这是一个测试网页内容压缩的页面!!This is test Pagel!

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200902194502129.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80ODE5MTAzOQ==,size_16,color_FFFFFF,t_70#pic_center) 打开wireshark开始进行抓包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

网页缓存

网页缓存是将一部分经常不会改变和变动很少的页面缓存,下次浏览器再次访问这些页面时,不需要再次去下载这些页面,从而提高了用户的访问速度。
Apache的mod_expires模块会自动生成页面头部信息中的Expres标签和Cache-Control标签,客户端浏览器根据标签决定下次访问是在
本地机器的缓存中获取页面,不需要向服务器再次发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度
的目的。
配置mod_expires模块的步骤与mod_deflate模块相似
显示deflate_expires (static),表示已经安装。
(1)检查mod_expires模块是否安装
[root@localhost~]#apachectl -D DUMP_MODULES |grep “expire”
#########没有装mod expires###############
(2)安装mod_expires模块
如果没有安装mod_expires模块,需要停止Apache服务,重新编译安装Apache,参数中加入mod expires模块内容。
[root@localhost ~]# systemctl stop httpd
[root@localhost~]#cd /opt/httpd-2.4.29/
root@localhost httpd-2.4.29]#
./configure
–prefix=/usr/local/httpd
–enable-so
–enable-rewrite
–enable-charset-lite
–enable-cgil
–enable-cgid
–enable-deflate
–enable-expires

#####################在进行编译安装Apache时,出现如下错误##################
checking whether to enable mod_deflat…configure:error: mod_deflate has been requested but can not be built due to prerequisite failures
解决方案:
yum install -y zlib-devel
########################################################################

[root@localhost httpd-2.4.29]# make && make install
[root@localhost httpd-2.4.29]# vi /etc/httpd.conf

在这里插入图片描述
在末尾加入

在这里插入图片描述
[root@localhost conf]# apachectl -t
在这里插入图片描述
[root@localhost conf]# systemctl restart httpd
[root@localhost conf]# apachectl -D DUMP_MODULES |grep “expires”
在这里插入图片描述
在这里插入图片描述
###Apache安全优化###
Apache的默认配置除了性能可以优化外,还需要对安全性进行相应的配置。默认配置
能保证服务器正常提供服务,但Apache作为一个软件,必然也会存在一些漏洞,尽可能的
降低潜在的风险,是管理员必须掌握的内容。
###隐藏版本信息###
一般情况下,软件的漏洞信息和特定版本是相关的。因此,软件的版本号对攻击者来说是很有价值的
###################用wireshaerk抓包HTTP/1.1200 Ok#######
找到HTTP/1.1200 OK)
找到Hyertext Transfer Protocol
找到HTTP/1.1 200 OK lr ln
找到Server :Apache/2.4.29###这个地方表能显示Apache版本信息###
##########################################################
如果黑客或别有用心的人得到Apache的版本信息,就会有针对性的展开攻击,很有可
能会给网站造成很大的损失。所以,需要隐藏Apache的版本号,降低遭受攻击的风险,保护服务器安全运行。
隐藏apache信息

[root@localhost~]# vim /usr/local/httpd/conf/httpd.conf
在这里插入图片描述
把前面的#号键去掉

(2)修改httpd-default.conf文件
[root@localhost~]# vim /usr/local/httpd/conf/extra/httpd-default.conf
ServerTokens Prod

在这里插入图片描述
在这里插入图片描述
不显示apache版本信息

###配置防盗链###
一般来说,我们浏览一个完整的页面并不是一次性全部传送到客户端的。如果所请求的页面带有图片或其他信息,那么第一个Http请求传送的是这个页面的文
本,然后通过客户端的浏览器对这段文本进行解释执行,如果发现其中还有图片,那么客户端的浏览器会再次发送一条Http请求,当这个请求被处理后这个图片文件才会被传送到客户端,最后浏览器会将图片安放到页面的正确位置,就这样一个完整的页面要经过多次发送Http请求才能够被完整的显示。
基于这样的机制,就会产生盗链问题:如果一个网站中没有其页面中所说图片信息,那么它完全可以链接到其他网站的图片信息上。这样,没有任何资源的网
站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易地发现。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担

http标准协议中有专门的 Referer字段记录,它的作用如下。
1)可以追溯上一个入站地址是什么。
2)对于资源文件,可以跟踪到包含显示它的网页地址是什么,因此所有防盗链方法都是基于这个Referer字段。
#####以下是在合法服务器上配置防盗链#####
###正常环境搭建###
20.0.0.27www.51xit.top ###做防盗链配置
20.0.0.25###做盗链网站
####首先20.0.0.27不做做防盗链配置###
做一个测试页

在这里插入图片描述
[root@localhost htdocs]# vi index.html

--压缩测试页--

这是一个盗图页面! !This is test Page!!

~ vi /usr/local/httpd/conf/httpd.conf ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200902195934109.png#pic_center) 这边做的盗链网站

在网页上测试
在这里插入图片描述
直接是用20.0.0.25去盗取27的网站

现在开始做防盗链,现在在主机20.0.0.27上面做
(1)检查是否安装了mod_rewrite模块
[root@localhost ~]# apachectl -t -D DUMP_MODULES |grep “rewrite”
没有过滤出这个模块,那我们就需要开启,首先要关闭这个httpd服务
[root@localhost ~]#systemctl stop httpd
[root@localhost ~]# vi/etc/httpd.conf
在这里插入图片描述
在这里插入图片描述
然后还是在该配置文件下搜索htdocs

在这里插入图片描述
在这里插入图片描述
[root@localhost ~]# systemctl restart httpd
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值