一般来说mod gzip对服务器CPU的占用要高一些。mod deflate是专门为确保服务器的性能而使用的一个压缩模块, moddeflate需要较少的资源来压缩文件。这意味着在高流量的服务器,使用mod deflate可能会比mod gzip加载速度更快。
简而言之,如果网站访问量较小,想要加快网页的加载速度,就使用mod gzip.虽然会额外耗费一些服务器资源,但也是值得的。如果网站访问量较大、使用的是共享虚拟主机.且所分配系统资源有限,那么使用mod deflate将会是更好的选择。
另外,从Apache 2.0.45开始, mod deflate模块可使用DeflateCompressionLevel指令来设置压缩级别。该指令的值可为1至(压缩速度最快,最低的压缩质量) 9 (最慢的压缩速度,压缩率最高)之间的整数,其默认值为6 (压缩速度和压缩质量较为平衡的值)这个简单的变化更是使得mod deflate可以轻松媲美mod-gzip的压缩。
首先我们要先保证 HTTP 服务已经安装完成,并且万确配置好了,详情请看我之前的博客
https://blog.csdn.net/weixin_44733021/article/details/108321541 这是博客地址,欢迎观看。
安装压缩模块前先关闭 HTTP 服务
[root@localhost httpd-2.4.29]# systemctl stop httpd
[root@localhost httpd-2.4.29]# yum -y install zlib-devel ##一定要安装这个,否则会报错或者压缩模块装不上去
[root@localhost httpd-2.4.29]#
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-cgid \
--enable-deflate ##这是压缩模块
-------------------------------------
prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
--enable-so:启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。
--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网
--enable-cgi:启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。
[root@localhost httpd-2.4.29]# make && make install
[root@localhost httpd-2.4.29]# systemctl restart httpd ## 开启http服务
[root@localhost httpd-2.4.29]# vi /usr/local/httpd/conf/httpd.conf ##添加如下代码
LoadModule deflate_module modules/mod_deflate.so
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml text/javascript image/png image/jpg
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
</IfModule>
第一行代表对什么样的内容启用gzip压缩,
第二行代表压缩级别
第三行代表启用deflate 模块对本站点的输出进行 gzip 压缩。
==>> wq 保存
## 把xshell或者别的软件把本地图片放进 /usr/local/httpd/htdocs 里
[root@localhost httpd-2.4.29]# vi /usr/local/httpd/htdocs/index.html
<html>
<head>
<title>--压缩测试页--</title>
</head>
<body>
<h1>这是压缩页的内容</h1>
<img src=b.jpg / > ## b.jpg 是图片的名称
</body>
</html>
在网页输入 20.0.0.6,查看显示成功!
网页缓存是将一部分经常不会改变和变动很少的页面缓存,下次浏览器再次访问这些
页面时,不需要再次去下载这些页面,从而提高了用户的访问速度。
Apache的mod expires模块会自动生成页面头部信息中的Expres标签和Cache-Control
标签,客户端浏览器根据标签决定下次访问是在本地机器的缓存中获取页面,不需要向服务器
再次发出请求,从而降低客户端的访问频率和次数,达到减少不必要的流量和增加访问速度的目的。
<lfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
</lfModule>
[root@localhost httpd-2.4.29]# systemctl stop httpd
[root@localhost opt]# cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi \
--enable-cgid \
--enable-deflate \
--enable-expires
[root@localhost httpd-2.4.29]# make && make install
[root@localhost httpd-2.4.29]# vi /usr/local/httpd/conf/httpd.conf
LoadModule expires_module modules/mod_expires.so ## 前面的#号去掉,然后在下面插入
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 60 seconds"
</IfModule>
==>> wq 保存
[root@localhost httpd-2.4.29]# httpd -t
Syntax OK
[root@localhost httpd-2.4.29]# systemctl restart httpd ##开启http服务
安全优化概述:
Apache的默认配置除了性能可以优化外,还需要对安全性进行相应的配置。
默认配置能保证服务器正常提供服务,但Apache作为一个软件,必然也会存在一些漏洞,
尽可能的降低潜在的风险,是管理员必须掌握的内容。
隐藏版本信息概述:
一般情况下,软件的漏洞信息和特定版本是相关的。因此,软件的版本号对攻击者来说是很有价值的
■ #Include conf/extra/httpd-default.conf
■ ServerTokens Full修改为ServerTokens Prod
[root@localhost httpd-2.4.29]# vi /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-default.conf ## 去掉前面的 # 号
## 修改httpd.conf 配置文件,使httpd-default.conf 文件生效,它里面包含了是否返回版
本信息的内容。
[root@localhost httpd-2.4.29]# vi /usr/local/httpd/conf/extra/httpd-default.conf
ServerTokens Full ==>> 改成 ServerTokens Prod
[root@localhost httpd-2.4.29]# systemctl restart httpd ## 重启 httpd服务
概述:
一般来说,我们浏览一个完整的页面并不是一次性全部传送到客户端的。如果所请求的页面带有图片或其他信息,那么第一个Http请求传送的是这个页面的文本,然后通过客户端的浏览器对这段文本进行解释执行,如果发现其中还有图片,那么客户端的浏览器会再次发送一条Http请求,当这个请求被处理后这个图片文件才会被
传送到客户端,最后浏览器会将图片安放到页面的正确位置,就这样一个完整的页面要经过多次发送Http请求才能够被完整的显示
基于这样的机制,就会产生盗链问题:如果一个网站中没有其页面中所说图片信息,那么它完全可以链接到其他网站的图片信息上。这样,没有任何资源的网站利用了别的网站的资源来展示给浏览者,提高了自己的访问量,而大部分浏览者又不会很容易
地发现。一些不良网站为了不增加成本而扩充自己站点内容,经常盗用其他网站的链接。一方面损害了原网站的合法利益,另一方面又加重了服务器的负担。
http标准协议中有专门的Referer字段记录,它的作用如下。
[root@localhost opt]# vi /usr/local/httpd/htdocs/index.html
进入后,把里面的内容删除,添加新的内容
<html>
<head>
<title>--压缩测试页--</title>
</head>
<body>
<h1>这是压缩页的内容</h1>
<img src=http://20.0.0.6/b.jpg / > ## b.jpg 是图片的名称
</body>
</html>
==>> wq 保存
[root@localhost htdocs]# vi /etc/host ## 做映射
20.0.0.6 www.51xit.top ##这里是添加的 20.0.0.26 是正版网站的IP
==>> wq 保存
[root@localhost htdocs]# ping www.51xit.top ## ping 测试一下
PING www.51xit.com (20.0.0.6) 56(84) bytes of data.
64 bytes from www.51xit.top (20.0.0.6): icmp_seq=1 ttl=64 time=0.918 ms
64 bytes from www.51xit.top (20.0.0.6): icmp_seq=2 ttl=64 time=0.375 ms
64 bytes from www.51xit.top (20.0.0.6): icmp_seq=3 ttl=64 time=0.364 ms
64 bytes from www.51xit.top (20.0.0.6): icmp_seq=4 ttl=64 time=0.397 ms
--- www.51xit.top ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7004ms
rtt min/avg/max/mdev = 0.341/0.455/0.918/0.178 ms
[root@localhost httpd-2.4.29]# vi /usr/local/httpd/conf/httpd.conf
ServerName www.51xit.top:80 ### 把#号去掉,并改成自己的域名
AddDefaultCharset utf-8 ### 加在上面代码下面就行,解决中文乱码!
==>> wq 保存
[root@localhost htdocs]# systemctl restart httpd
测试一下,打开盗图网站
安装mod_rewrite模块
[root@localhost ~]# systemctl stop httpd ##先停掉http服务
[root@localhost ~]# vi /etc/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so ### 把#号去掉
######搜索htdocs,然后在目录最后添加下面这段代码#######
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://20.0.0.6/*
RewriteCond %{HTTP_REFERER} !^http://51xit.top/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://51xit.top$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.51xit.top/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.51xit.top$ [NC]
RewriteRule .*\.(gif|jpg|swf|png)$ https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=202451072,4165552475&fm=26&gp=0.jpg [R,NC] ## 这里是图片链接
[root@localhost ~]# systemctl restart httpd ## 最后重启 http服务
盗取失败!!!