温馨提示×

debian nginx如何防盗

小樊
46
2026-09-21 18:51:02
栏目: 智能运维

在 Debian 上用 Nginx 做“防盗”,通常指以下几类需求。你可以按场景选择方案,也可以组合使用。


一、防盗链(防止别人网站引用你的图片/视频/文件)

1. 基础防盗链(Referer 判断)

编辑站点配置(如 /etc/nginx/sites-enabled/default):

location ~* \.(jpg|jpeg|png|gif|webp|mp4|zip)$ {
    valid_referers none blocked server_names
                   *.yourdomain.com yourdomain.com;

    if ($invalid_referer) {
        return 403;
    }
}

重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

✅ 允许:

  • 直接访问(none)
  • 本站域名 ❌ 拦截:
  • 其他网站引用

二、防盗刷 / 限流(防止被人恶意下载、爬取)

2. 限制单 IP 请求频率

http {
    limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
}

server {
    location / {
        limit_req zone=req_limit burst=20 nodelay;
    }
}

3. 限制下载带宽

location /download/ {
    limit_rate 500k;
}

三、防盗登录(保护后台 / 管理目录)

4. Basic Auth 密码保护

sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd admin

Nginx 配置:

location /admin/ {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

四、防盗爬(阻止恶意 UA / 扫描器)

5. 屏蔽垃圾 UA

if ($http_user_agent ~* (Scrapy|curl|python|wget|nikto|masscan)) {
    return 403;
}

五、防盗文件盗用(签名 URL / 临时链接)

6. 使用 secure_link(高级)

适合视频、私有文件下载。

location /files/ {
    secure_link $arg_md5,$arg_expires;
    secure_link_md5 "$secure_link_expires$uri secret";

    if ($secure_link = "") { return 403; }
    if ($secure_link = "0") { return 410; }
}

六、配合系统层防护(推荐)

7. 防火墙限制

sudo apt install ufw
sudo ufw allow 22,80,443/tcp
sudo ufw enable

8. Fail2ban(防暴力)

sudo apt install fail2ban

七、常见组合推荐

场景 推荐方案
图片被别的网站盗用 Referer 防盗链
视频被疯狂下载 限流 + 签名 URL
后台被扫 Basic Auth + IP 白名单
爬虫太猛 UA 拦截 + 限频

如果你能说明:

  • 防什么(图片 / 视频 / API / 后台)
  • 是否公开访问
  • 是否用 CDN

我可以给你一份直接可用的 Nginx 配置。

0 踩