Apache网页优化之防盗链

Apache优化实现防盗链

■防盗链就是防止别人的网站代码里面盗用服务器的图片
、文件、视频等相关资源
■如果别人盗用网站的这些静态资源,明显的是会增大服
务器的带宽压力
■所以作为网站的维护人员,要杜绝我们服务器的静态资
源被其他网站盗用
■检查Apache是否安装了mod_ rewrite模块
●/usr/local/apache/bin/apachectl -t -D DUMP MODULES
●如果输出中没有rewrite
module (static),则说明编译时没有安装
mod rewrite模块
■如果没有安装则要重新编译安装
●./configure --enable-rewrite...
●make &&make install
配置规则变量说明
%{HTTP
REFERER}:浏览header中的链接字段,存放一一个链
接的URL,代表是从哪个链接访问所需的网页
!^:不以后面的字符串开头
.*$: 以任意字符结尾
NC:不区分大写
R:强制跳转
■规则匹配说明
●RewriteEngine On:打开网页重写功能
●RewriteCond:设置匹配规则
●RewriteRule:设置跳转动作
规则匹配
●如果相应变量的值匹配所设置的规则,则逐条往下处理;如果不
匹配,则往后的规则不再匹配

■配置操作演示
●修改配置文件启用防盗链功能并设置规则:
RewriteEngine On

RewriteCond %{HTTP_ REFERER} !tp://est.com/.$ [NC]

RewriteCond %{HTTP REFERER} !^http://test.com$ [NC1
RewriteCond %{HTTP
REFERER} !^http://www.test.com/.$ [NC]
RewriteCond %{HTTP_ REFERER} !^http://www.test.com$ [NC]
RewriteRule .\
.(gifljpg|swf)$ http://www.test.com/error.html [R,NC]

防盗链配置实操

安装并配置DNS服务

[[email protected] ~]# yum install bind -y     //安装服务
[[email protected] ~]# vim /etc/named.conf      //编辑主配置文件
options {
        listen-on port 53 { any; };     //括号内127.0.0.1替换为any
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };       //括号内localhost替换为any
[[email protected] ~]# vim /etc/named.rfc1912.zones    //编辑区域配置文件
zone "kgc.com" IN {           //指定域名
        type master;
        file "kgc.com.zone";                //指定域名对应的区域数据配置文件
        allow-update { none; };
};
[[email protected] ~]# cd /var/named/
[[email protected] named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[[email protected] named]# cp -p named.localhost kgc.com.zone   //复制区域数据配置文件模板
[[email protected] named]# vim kgc.com.zone     //编辑区域数据配置文件
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       192.168.131.129
[[email protected] named]# systemctl start named        //开启DNS服务
[[email protected] named]# systemctl stop firewalld.service     //关闭防火墙
[[email protected] named]# setenforce 0           //关闭增强型安全功能

编译安装Apache服务

[[email protected] named]# mkdir /aaa
[[email protected] named]# mount.cifs //192.168.100.10/LAMP-C7 /abc
//远程挂载文件到本地
Password for [email protected]//192.168.100.10/LAMP-C7:
[[email protected] named]# cd /abc
[[email protected] LAMP]# ls       //查看挂载文件内容
apr-1.6.2.tar.gz       cronolog-1.6.2-14.el7.x86_64.rpm  mysql-5.6.26.tar.gz
apr-util-1.6.0.tar.gz  Discuz_X2.5_SC_UTF8.zip           php-5.6.11.tar.bz2
awstats-7.6.tar.gz     httpd-2.4.29.tar.bz2

解压工具包的源码文件并移动组件包到Apache的目录中

[[email protected] LAMP]# tar jxvf httpd-2.4.29.tar.bz2 -C /opt/
[[email protected] LAMP]# tar zxvf apr-1.6.2.tar.gz -C /opt/
[[email protected] LAMP]# tar zxvf apr-util-1.6.0.tar.gz -C /opt/
[[email protected] LAMP]# cd /opt/
[[email protected] opt]# ls
apr-1.6.2  apr-util-1.6.0  httpd-2.4.29  rh
[[email protected] opt]# mv apr-1.6.2/ httpd-2.4.29/srclib/apr
[[email protected] opt]# mv apr-util-1.6.0/ httpd-2.4.29/srclib/apr-util

安装编译语言环境

yum -y install gcc gcc-c++ make pcre-devel zlib-devel expat-devel pcre perl  

configure配置Apache功能模块

[[email protected] opt]#cd httpd-2.4.29/
[[email protected] httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-deflate --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

编译及编译安装

make && make install
[email protected] httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf
/ServerName搜索关键词到此行,并进行如下配置
ServerName www.kgc.com:80
/Listen搜索关键词到监听端口
Listen 192.168.131.129:80       //开启ipv4端口并将监听地址改为本地地址
#Listen 80        //对ipv6端口进行注释
LoadModule rewrite_module modules/mod_rewrite.so
/rewrite搜索关键词到此行,开启重写功能模块
[[email protected] httpd-2.4.29]# cd /usr/local/httpd/bin/
//切换至Apache服务的/bin目录中
[[email protected] bin]# vim /usr/local/httpd/htdocs/index.html
//编辑首页文件

<html><body><h1>It works!</h1>
<img src="tupian.png"/>                           //将图片放入标签中
</body></html>

[[email protected] bin]# cp /abc/tupian.png /usr/local/httpd/htdocs/
//将先前挂载目录中的图片复制到站点目录下
./apachectl start         //开启Apache服务

打开一台win10测试机,将DNS服务器地址改为本地服务器地址

在浏览器输入www.kgc.com 即可访问到网页

右击图片查看网页属性,以获取图片的URL地址

创建并配置盗链网站

开启另一台win10-2测试机搭建盗链网站

使用txt文档编写网页内容

<html>
<head></head>
<body>
<h1>this is test web</h1>
<img src="http://www.kgc.com/tupian.png"/&gt;
</body>
</html>

将文件改为html格式并放入放入C:\inetpub\wwwroot的站点中
此时使用测试机win10访问192.168.131.128,就可以访问到网页,但是这是个盗链网站,访问此站点的同时既盗取了他人源网站的资源,又将流量导回了源网站,从而造成了他人服务器的负载,所以为了防止这种情况的发生,所以我们要对我们的apache网页进行防盗链的配置,

配置防盗链

修改apache配置文件

[[email protected] bin]# vim /usr/local/httpd/conf/httpd.conf
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|png|swf)$ http://www.kgc.com/fangdao.jpg

将报错图片放入站点目录

[[email protected] bin]# cp /abc/fangdao.jpg /usr/local/httpd/htdocs/
[[email protected] bin]# ls /usr/local/httpd/htdocs/
tupian.png fangdao.jpg index.html
[[email protected] bin]# ./apachectl stop //重启服务
[[email protected] bin]# ./apachectl start

我们使用测试机再次输入192.168.131.128,此时因为设置了防盗链所以会跳出另外一张图片,此时说明了防盗链设置成功

原文地址:https://blog.51cto.com/14449528/2449525

时间: 2024-08-26 02:26:24

Apache网页优化之防盗链的相关文章

Apache网页优化之防盗链和隐藏版本号

Apache网页优化之防盗链 防盗链的作用 防盗链就是防止别人的网址代码里面盗用服务器的图片,文件,视频等相关资源如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用 防盗链的配置规则 %{}HTTP_REFERER}: 浏览header中的链接字段,存放一个链接的URL,代表是从哪个链接访问所需的网页 !^: 不以后面的字符串开头 .*$: 以任意字符结尾 NC: 不区分大写 R:强制跳转 防盗链规则匹配说明 Rewri

Apache网页优化 ---配置防盗链

防盗链概述 防盗链就是防止别人的网站代码里面盗用服务器的图片文件.视频等相关资源.如果别人盗用网站的这些静态资源,明显的是会增大服务器的带宽压力.所以作为网站的维护人员,要杜绝我们服务器的静态资源被其他网站盗用. 配置规则变量说明 %{HTTP_ REFERER}:浏览header中的链接字段,存放一一个链接的URL,代表是从哪个链接访问所需的网页!^:不以后面的字符串开头.*$: 以任意字符结尾NC:不区分大写R:强制跳转 规则匹配说明 RewriteEngine On:打开网页重写功能Rew

Apache安全优化之防盗链

通常防盗链是为了防止图片,视频等信息被盗用.下面我将利用一个小实验模拟盗链与防盗链,实验用到如下两张图片:提供网站服务的主机我做了DNS解析,是使用域名www.benet.com 进行访问的客户机IP地址:192.168.100.30/24,盗链机IP地址:192.168.100.11/241.首先需要手工编译安装Apache,详细步骤可参考我之前手工编译安装Apache的博客:http://blog.51cto.com/13641879/21093422.安装前准备环境需要比之前多安装这个软件

apache网页优化之压缩功能和缓存时间

Apache网页优化 优化概述 压缩功能优化 配置Apache的网页压缩功能,是使用gzip压缩算法对网页内容进行压缩后再传输到客户端浏览器 先把宿主机的共享目录共享到Linux下 [[email protected] ~]# smbclient -L //192.168.100.23/ #访问宿主机的共享文件 Enter SAMBA\root's password: OS=[Windows 10 Enterprise 17763] Server=[Windows 10 Enterprise 6

Apache网页优化—网页压缩

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

Apache网页优化---网页压缩与缓存

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

Apache网页优化(一)-------- 网页压缩与缓存

Apache网页优化概念 在企业中,部署Apache后只采用默认的配置参数,会引发网站很多问题,换言之默认配置是针对以前较低的服务器配置的,以前的配置已经不适用当今互联网时代,为了适应企业需求,就需要考虑如何提升Apache的性能与稳定性,这就是Apache优化的内容. 优化内容: 配置网页压缩功能 配置网页缓存时间 配置防盗链 配置隐藏版本号 gzip介绍 配置Apache的网页压缩功能,是使用gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器. 作用 降低了网络传输的字节数,加快网页

Linux之nginx优化与防盗链

Linux之nginx优化与防盗链 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine X",是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发. Nginx以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理.负载平衡.但是Nginx并不支持cgi方式运行,原因是可以减少因

使用Apache的.htaccess就可以防盗链

Apache的.htaccess可以实现很多功能,如密码保护.禁止显示目录列表.阻止/允许特定的IP地址.实现网址的301 重定向等等.本文就来说说使用Apache的.htaccess如何防盗链. 当然防盗链可以用程序解决,如PHP: $referer = $_SERVER['HTTP_REFERER']; $selfurl = $_SERVER['HTTP_HOST']; if(false == strpos($referer,$selfurl)){ echo 'phpddt.com防止非法盗