当前位置:首页 > Centos > 正文

CentOS防盗链设置(Apache与Nginx防止图片盗链详细教程)

在网站运营过程中,经常遇到其他网站直接引用你服务器上的图片、视频或文件资源,这不仅会消耗你的带宽,还可能导致服务器负载过高。这种行为被称为“盗链”。为了保护自己的资源不被滥用,我们可以在CentOS系统上通过Web服务器(如Apache或Nginx)进行防盗链设置。本教程将手把手教你如何在CentOS中配置防盗链,即使是小白也能轻松上手。

CentOS防盗链设置(Apache与Nginx防止图片盗链详细教程) CentOS防盗链设置 Apache防盗链配置 Nginx防盗链教程 防止图片盗链 第1张

一、什么是防盗链?

防盗链(Anti-leech)是一种通过判断HTTP请求中的Referer字段来限制外部网站直接调用你站点资源的技术。例如,当用户A访问你的图片时,如果请求来自你自己的域名(如https://yourdomain.com),则允许加载;如果来自其他网站(如https://other-site.com),则拒绝访问或返回一个替代图片(如“禁止盗链”提示图)。

二、在Apache中设置防盗链(适用于CentOS)

如果你的CentOS服务器使用的是Apache作为Web服务器,请按以下步骤操作:

1. 确保mod_rewrite模块已启用

通常CentOS默认已启用该模块。你可以通过以下命令检查:

httpd -M | grep rewrite  

2. 编辑网站的.htaccess文件或虚拟主机配置

在网站根目录下创建或编辑.htaccess文件,添加以下内容:

RewriteEngine OnRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^https://yourdomain\.com [NC]RewriteCond %{HTTP_REFERER} !^https://www\.yourdomain\.com [NC]RewriteRule \.(jpg|jpeg|png|gif|mp4|flv)$ https://yourdomain.com/images/nohotlink.png [R,L]  

说明:

  • RewriteEngine On:开启重写引擎
  • %{HTTP_REFERER} !^$:允许空Referer(如直接访问)
  • !^https://yourdomain\.com:允许你自己的域名访问
  • 最后一条规则:对.jpg、.png等格式的请求,若不符合条件,则跳转到提示图片

三、在Nginx中设置防盗链(适用于CentOS)

如果你使用的是Nginx,请修改站点的配置文件(通常位于/etc/nginx/conf.d//etc/nginx/sites-available/):

server {    listen 80;    server_name yourdomain.com www.yourdomain.com;    location ~* \.(jpg|jpeg|png|gif|mp4|flv)$ {        valid_referers none blocked yourdomain.com *.yourdomain.com;        if ($invalid_referer) {            return 403;            # 或者返回一张提示图:            # rewrite ^/.*$ /images/nohotlink.png last;        }    }    root /var/www/html;    index index.html;}  

配置说明:

  • valid_referers:定义合法的来源,包括空(none)、被防火墙屏蔽的(blocked)、以及你自己的域名
  • $invalid_referer:当来源不在合法列表中时,变量为真
  • 可选择返回403错误,或重写URL指向一张“防盗链提示图”

修改完成后,记得重载Nginx配置:

sudo nginx -t && sudo systemctl reload nginx  

四、注意事项

  • 防盗链不能100%防止资源被盗用(因为Referer可以伪造),但能有效阻止大部分普通盗链行为。
  • 确保你自己的CDN或子域名也被加入白名单,否则可能误伤正常用户。
  • 测试防盗链是否生效:可在其他网站嵌入你的图片链接,观察是否被拦截。

五、总结

通过本教程,你已经学会了如何在CentOS系统中分别使用Apache和Nginx进行防盗链设置。无论是保护图片、视频还是其他静态资源,合理配置防盗链都能显著降低带宽浪费,提升服务器性能。希望这篇关于Apache防盗链配置Nginx防盗链教程的内容对你有所帮助!

如果你还有疑问,欢迎在评论区留言交流。别忘了收藏本文,以便日后查阅!