在Nginx中配置防盗链,可以通过检查HTTP请求头中的Referer字段来实现。以下是一个基本的防盗链配置示例:
打开Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/your_domain.conf。
在server块中添加以下配置:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
valid_referers none blocked your_domain.com *.your_domain.com;
if ($invalid_referer) {
return 403 "Forbidden";
}
}
这里的配置解释如下:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:匹配所有以.jpg, .jpeg, .png, .gif, .ico, .css, .js结尾的文件请求。valid_referers none blocked your_domain.com *.your_domain.com;:设置允许的引用来源。none表示不允许任何引用,blocked表示允许被Nginx阻止的引用(例如,来自已屏蔽的恶意网站),your_domain.com和*.your_domain.com表示允许来自你自己的域名及其子域名的引用。if ($invalid_referer):如果引用来源无效(即不在允许的引用来源列表中),则执行以下操作。return 403 "Forbidden";:返回403 Forbidden状态码,表示禁止访问。保存配置文件并退出编辑器。
重新加载Nginx配置以使更改生效:
sudo nginx -t # 检查配置文件语法是否正确
sudo nginx -s reload # 重新加载配置文件
现在,Nginx将检查静态文件的引用来源,并根据配置的规则允许或拒绝访问。如果用户尝试从不允许的来源访问这些文件,他们将收到403 Forbidden错误。