在Nginx中配置防盗链主要是通过检查HTTP请求头中的Referer字段来实现的。如果请求的来源不是你指定的域名,那么可以拒绝访问资源。以下是一个基本的防盗链配置示例:
打开你的Nginx配置文件。通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/yourdomain.com。
在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状态码。保存配置文件并退出编辑器。
重新加载Nginx配置以使更改生效:
sudo nginx -t # 检查配置文件语法是否正确 sudo nginx -s reload # 重新加载配置文件 现在,Nginx将根据配置检查防盗链规则。如果请求的资源引用不符合指定的域名,用户将收到403 Forbidden响应。
请注意,防盗链并不能完全防止资源被盗用,因为Referer头可以被伪造。更高级的防盗链方法可能需要使用签名URL或其他验证机制。