欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apache网页压缩缓存与隐藏版本 防盗链

程序员文章站 2022-06-26 12:54:16
...

Apache网页压缩和缓存技术,对于Apache的性能提升有非常的效果。网站的访问速度是由多个因素所共同决定的这些因素应用程序的影响速度,网路宽带,服务器性能,与客服端的网络传输速度等等。

网页压缩

网络压缩可以提高应用程序的速度,而他完全不需要如何成本,只不过会让服务器CPU占用率稍微提升一两百分点或者更少。
gizp介绍
配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器
作用:
1.降低了网络传输的字节数,加快网页加载的速度。
2.节省流量,改善用户的浏览体验。
3.gzip与搜索引擎的抓取工具有着更好的关系。

Apache的压缩模块
Apache实现网页压缩的功能模块包括
1.mod_gzip模块
2.mod_deflate模块 注:系统资源占用率较低。

Apache 1.X
没有内建网页压缩技术,但可使用第三方mod_gzip模块执行压缩。

Apache 2.X
在开发的时候,内建了mod_deflate这个模块,取代mod_gzip.

mod_gzip模块与mod deflate模块
1.两者均使用gzip压缩算法,运作原理类似
2.mod_deflate压缩速度略快,而mod_gzip的压缩比略高。
3.mod_gzip对服务器CPU的占用要高一些。
4.高流量的服务器,使用mod_deflate可能会比mod_gzip 加载速度更快。

启用网页压缩功能步骤
注:跟着步骤来 操作才能更方便。 Apache网页压缩缓存与隐藏版本 防盗链

Apache压缩操作

Apache官方
Apache网页压缩缓存与隐藏版本 防盗链

解包

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
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util

添加压缩模块

 yum -y install gcc gcc-c++ make pcre pcre-devel zlib-devel expat-devel perl'
'pcre-devel:支持正则表达式'
'expat-devel:用来解析XML文档开发库。' 
'zlib-devel:压缩工具'
'perl:内部集成正则表达式和第三方代码库CPAN。'

 cd httpd-2.4.29/
 ./configure --prefix=/usr/local/httpd 
 --enable-deflate    '加入mod_deflate模块'
 --enable-so 
 --enable-rewrite   '这里是后面要用的防盗链模块 提前加入'
 --enable-charset-lite 
 --enable-cgi 
 --enable-cgid 
 --enable-expires  '这里是后面要用的缓存模块 提前加入'

出现这个gcc -E 便成功了!Apache网页压缩缓存与隐藏版本 防盗链

make && make install   '编译安装'
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd  '将apachectl脚本复制/etc/init.d/httpd'
vi /etc/init.d/httpd    
#chkconfig: 35 85 21     '服务识别参数 3-5中启动 启动和关闭分别为85 21'
'注:系统每次进入3,5时,htppd服务就会直接运行'
#description: Apache HTTP Server  '描述服务信息'
chkconfig --add httpd '将htppd添加系统服务'
chkconfig --list httpd   '查看服务的自启动状态'
systemctl enable httpd  '开启Httpd'
'注:chkconfig --level 35 httpd on  也可以开启3 5 效果跟上面一样'
ln -s /usr/local/httpd/conf/httpd.conf  /etc   '链接到/etc '
ln -s /usr/local/httpd/bin/* /usr/bin   /'链接到/usr/bin '

配置并启动httpd服务

vi /etc/httpd.conf  ' 进入里面修改一下ServerName 域名 www.aa.com#LoadModule '
deflate_module modules/mod_deflate.so  '将#去掉 启用'
'在末尾加上'
SetOutputFilter DEFLATE
DeflateCompressionLevel 6
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

systemctl start   httpd   '别忘记重启服务'

检测一下deflate模块

apachectl -D DUMP_MODULES | grep deflate  '检测一下deflate模块开启没有'
注:效果是 [aaa@qq.com ~]# apachectl -D DUMP_MODULES | grep deflate    
              deflate_module (shared)   '代表开启了'
[aaa@qq.com ~]# httpd -t
Syntax OK
[aaa@qq.com ~]# apachectl -t  效果都一样
Syntax OK

网页缓存

网页缓存是将一部分不会改变或者改变少的页面缓存,下次浏览器再次访问这些页面时,不会再次去下载这些页面,从而提高用户的访问速度。
安装mod_expires模块
注:做压缩的操作时已经加入了–enable-expires //加入mod_expires模块
配置mod_expires模块启用

vi /etc/httpd.conf
#LoadModule expires_module modules/mod_expires.so    '去掉#'
最后加入:
<IfModule mod_expires.c>
ExpiresActive On    '缓存是否开启,开是On,关是Off 。'
ExpiresDefault "access plus 60 seconds" '缓存时间   操作时是puls 1 day 所以是86400。'
</IfModule>

检测expires模块

apachectl -D DUMP_MODULES | grep expires '检测一下expires模块开启没有'

Apache网页压缩缓存与隐藏版本 防盗链
测试缓存是否生效
注:响应标头中包含了Expiresx项,说明缓存已经工作。
Apache网页压缩缓存与隐藏版本 防盗链

配置服务版本信息隐藏

一般情况下,软件的泄露信息和特点版本是相关的,因此软件的版本号对攻击者是很有价值,所以我们要隐藏Apache’版本号,减少攻击的风险,保护服务器安全运行。

vi /usr/local/httpd/conf/extra/httpd-default.conf ServerTokens Full  '改为' ServerTokens Prod

vi /etc/httpd.conf
#Include conf/extra/httpd-default.conf '去掉#'

Apache网页压缩缓存与隐藏版本 防盗链

防盗链

准备图片

vi /usr/local/httpd/htdocs/index.html
<html><body><h1>It works!</h1><img src="1.jpg"/></body></html> 
 systemctl start httpd  '注:192.168.100.106 图片地址是1.jpg'

Apache网页压缩缓存与隐藏版本 防盗链
第2台server2 模拟盗取图片的链接

yum -y install httpd '不用编译安装 就yum安装测试一下'
vi /var/www/html/index.html<html><body>this is my web.<img src="http://192.168.100.106/1.jpg"/></body></html>
 '注:模拟盗取图片的地址是192.168.100.102 内容给的是this is my web。'
systemctl start httpd  

Apache网页压缩缓存与隐藏版本 防盗链
Apache防盗链配置

vi /usr/local/httpd/htdocs/index.html
#LoadModule rewrite_module modules/mod_rewrite.so  //把#去掉    

AllowOverride All  '改为All'  
RewriteEngine On   
 RewriteCond %{HTTP_REFERER} !^http://192.168.100.106/.*$ [NC]    
 RewriteCond %{HTTP_REFERER} !^http://192.168.100.106/* [NC]    
 RewriteCond %{HTTP_REFERER} !^http://192.168.100.106$ [NC]    
 RewriteRule .*\.(gif|jpg|swf|)$ http://192.168.100.106/aa.png [R,NC]   
# http://192.168.100.106/aa.png [R,NC] 切记防盗图片不能跟(gif|jpg|swf|)其中的一样,不然会一直循环,显示不出禁止盗链的图。
' 注:http://192.168.100.106/aa.png 会转发这个路径。'

模块mod_rewrite

apachectl -D DUMP_MODULES | grep rewrite  '看看模块mod_rewrite有没有。'
rewrite_module (shared)   '有就会显示。'

Apache网页压缩缓存与隐藏版本 防盗链

相关标签: apache linux