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

RockyLinux防盗链设置(Nginx环境下防止图片和资源被盗用的完整教程)

在搭建网站时,很多站长都会遇到一个问题:自己的图片、视频或静态资源被其他网站直接引用,不仅消耗了服务器带宽,还可能带来安全风险。这种行为被称为“盗链”。本文将手把手教你如何在 RockyLinux 系统上通过 Nginx 配置实现防盗链设置,即使是小白也能轻松上手!

RockyLinux防盗链设置(Nginx环境下防止图片和资源被盗用的完整教程) RockyLinux防盗链设置  Nginx防盗链配置 防止图片盗链 RockyLinux服务器安全 第1张

什么是防盗链?

防盗链(Anti-leech)是一种通过服务器配置限制外部网站直接调用本站资源的技术。例如,当用户A的网站试图直接使用你网站上的图片链接(如 https://yourdomain.com/images/photo.jpg),而你的服务器检测到请求来源不是你自己的域名,就会拒绝该请求或返回一张替代图片(如“禁止盗链”提示图)。

为什么要在RockyLinux上设置防盗链?

RockyLinux作为RHEL的社区替代版本,广泛用于企业级服务器部署。如果你的网站运行在RockyLinux + Nginx环境中,合理配置防止图片盗链不仅可以节省带宽成本,还能提升RockyLinux服务器安全性,避免资源被恶意利用。

前置条件

  • 已安装RockyLinux系统(建议8.x或9.x版本)
  • 已安装并运行Nginx
  • 拥有网站的管理权限(可通过SSH登录服务器)

步骤一:确认Nginx已启用http_referer模块

Nginx默认已编译 http_referer 模块,无需额外安装。你可以通过以下命令验证:

nginx -V 2>&1 | grep -o with-http_referer_module  

如果输出 with-http_referer_module,说明模块已启用。

步骤二:编辑Nginx站点配置文件

假设你的网站配置文件位于 /etc/nginx/conf.d/your-site.conf,使用你喜欢的编辑器(如nano或vim)打开它:

sudo nano /etc/nginx/conf.d/your-site.conf  

步骤三:添加防盗链规则

server 块中,针对需要保护的静态资源(如图片、CSS、JS等)添加如下配置:

server {    listen 80;    server_name yourdomain.com;    root /var/www/html;    # 防盗链配置    location ~* \.(jpg|jpeg|png|gif|bmp|ico|css|js)$ {        valid_referers none blocked yourdomain.com *.yourdomain.com;        if ($invalid_referer) {            return 403;            # 或者返回一张提示图片:rewrite ^/.*$ /nohotlink.png last;        }    }}  

代码说明:

  • valid_referers 定义了允许访问资源的来源:
      – none:允许无Referer头的请求(如直接访问)
      – blocked:允许被防火墙或代理修改过的Referer
      – yourdomain.com*.yourdomain.com:只允许来自你自己的域名
  • $invalid_referer 是Nginx内置变量,当请求不符合 valid_referers 规则时为真
  • return 403 表示直接拒绝请求;你也可以选择重定向到一张“禁止盗链”的图片

步骤四:测试并重载Nginx

保存配置文件后,先测试语法是否正确:

sudo nginx -t  

如果显示 syntax is ok,则重载Nginx使配置生效:

sudo systemctl reload nginx  

验证防盗链是否生效

你可以通过以下方式测试:

  1. 在自己网站内正常访问图片,应能加载成功
  2. 在另一个网站(或本地HTML文件)中插入你的图片链接,应无法加载或显示403错误
  3. 使用curl命令模拟非法Referer测试:
curl -H "Referer: https://evil.com" -I https://yourdomain.com/images/test.jpg  

如果返回 HTTP/1.1 403 Forbidden,说明防盗链已成功生效!

总结

通过以上步骤,你已经成功在 RockyLinux 上完成了 Nginx防盗链配置。这不仅能有效防止图片盗链,还能提升整体的RockyLinux服务器安全水平。建议定期检查日志,确保防盗链规则按预期工作。

保护你的资源,从一次简单的配置开始!