在 Debian 上用 Nginx 做“防盗”,通常指以下几类需求。你可以按场景选择方案,也可以组合使用。
编辑站点配置(如 /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
✅ 允许:
http {
limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
}
server {
location / {
limit_req zone=req_limit burst=20 nodelay;
}
}
location /download/ {
limit_rate 500k;
}
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;
}
if ($http_user_agent ~* (Scrapy|curl|python|wget|nikto|masscan)) {
return 403;
}
适合视频、私有文件下载。
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; }
}
sudo apt install ufw
sudo ufw allow 22,80,443/tcp
sudo ufw enable
sudo apt install fail2ban
| 场景 | 推荐方案 |
|---|---|
| 图片被别的网站盗用 | Referer 防盗链 |
| 视频被疯狂下载 | 限流 + 签名 URL |
| 后台被扫 | Basic Auth + IP 白名单 |
| 爬虫太猛 | UA 拦截 + 限频 |
如果你能说明:
我可以给你一份直接可用的 Nginx 配置。