温馨提示×

Debian Nginx防盗链功能实现

小樊
61
2025-07-15 03:14:59
栏目: 智能运维

在Debian系统上使用Nginx实现防盗链功能,可以通过配置Nginx的ngx_http_referer_module模块来完成。以下是详细的步骤:

1. 安装Nginx

如果你还没有安装Nginx,可以使用以下命令进行安装:

sudo apt update
sudo apt install nginx

2. 配置防盗链

编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default。你可以创建一个新的配置文件或直接编辑现有的配置文件。

示例配置

假设你有一个图片目录/var/www/html/images,你希望限制只有特定域名可以访问这些图片。

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):如果引用无效,则返回403 Forbidden状态码。
  • root /var/www/html;:指定文件根目录。

3. 测试配置

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

sudo nginx -t

如果没有错误信息,重新加载Nginx以应用新的配置:

sudo systemctl reload nginx

4. 验证防盗链功能

现在,尝试从不同的域名访问你的图片目录,确保只有允许的域名可以访问图片。例如,从example.com访问应该正常,而从其他域名访问应该返回403 Forbidden。

注意事项

  • 确保你的Nginx版本支持ngx_http_referer_module模块。
  • 如果你有更多的域名需要允许,可以在valid_referers指令中添加它们。
  • 你可以根据需要调整返回的状态码,例如返回404 Not Found。

通过以上步骤,你就可以在Debian系统上使用Nginx实现防盗链功能了。

0