温馨提示×

如何通过nginx配置防盗链

小樊
45
2025-10-23 11:15:33
栏目: 编程语言

在Nginx中配置防盗链主要是通过检查HTTP请求头中的Referer字段来实现的。如果请求的来源不是你指定的域名,那么可以拒绝访问资源。以下是一个基本的防盗链配置示例:

  1. 打开你的Nginx配置文件。通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/yourdomain.com

  2. server块中添加以下配置:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ { valid_referers none blocked yourdomain.com *.yourdomain.com; if ($invalid_referer) { return 403; } } 

这里的配置解释如下:

  • location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:匹配所有以.jpg, .jpeg, .png, .gif, .ico, .css, .js结尾的文件请求。
  • valid_referers none blocked yourdomain.com *.yourdomain.com;:设置允许的引用来源。none表示不允许任何引用,blocked表示允许被Nginx阻止的引用(例如,来自广告联盟的引用),yourdomain.com*.yourdomain.com表示允许你的域名及其子域名的引用。
  • if ($invalid_referer) { return 403; }:如果引用无效,则返回403 Forbidden状态码。
  1. 保存配置文件并退出编辑器。

  2. 重新加载Nginx配置以使更改生效:

sudo nginx -t # 检查配置文件语法是否正确 sudo nginx -s reload # 重新加载配置文件 

现在,Nginx将根据配置检查防盗链规则。如果请求的资源引用不符合指定的域名,用户将收到403 Forbidden响应。

请注意,防盗链并不能完全防止资源被盗用,因为Referer头可以被伪造。更高级的防盗链方法可能需要使用签名URL或其他验证机制。

0