温馨提示×

如何用Nginx实现防盗链

小樊
45
2026-01-11 08:45:22
栏目: 编程语言

使用Nginx实现防盗链是一种常见的安全措施,可以防止其他网站未经授权地引用你的资源。以下是实现防盗链的步骤:

1. 安装Nginx

如果你还没有安装Nginx,可以参考官方文档进行安装。以下是在Ubuntu上的安装示例:

sudo apt update
sudo apt install nginx

2. 配置防盗链

编辑Nginx配置文件,通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default

示例配置

假设你有一个图片目录 /var/www/html/images,你希望只有你的域名 example.com 可以访问这些图片。

server {
    listen 80;
    server_name example.com;

    location /images/ {
        valid_referers none blocked server_names example.com www.example.com;
        if ($invalid_referer) {
            return 403;
        }
        root /var/www/html;
    }

    location / {
        root /var/www/html;
    }
}

解释

  • valid_referers none blocked server_names example.com www.example.com;:指定允许的引用来源。none 表示不允许任何引用,blocked 表示阻止的引用,server_names 表示允许的域名。
  • if ($invalid_referer) { return 403; }:如果引用无效,则返回403 Forbidden状态码。
  • root /var/www/html;:指定资源的根目录。

3. 测试配置

在保存配置文件后,测试Nginx配置是否正确:

sudo nginx -t

如果没有错误,重新加载Nginx以应用更改:

sudo systemctl reload nginx

4. 验证防盗链

尝试从其他域名访问你的图片目录,应该会收到403 Forbidden响应。

5. 进一步优化

你可以根据需要进一步优化防盗链配置,例如:

  • 使用更复杂的引用验证规则。
  • 对不同的资源类型(如CSS、JS文件)设置不同的防盗链规则。
  • 使用第三方模块或服务来增强防盗链功能。

通过以上步骤,你可以有效地使用Nginx实现防盗链,保护你的资源不被未经授权的网站引用。

0