防盗链是一种保护网站资源的方法,可以防止其他网站直接引用你的资源。通过使用rewrite规则,我们可以实现防盗链功能。以下是一个示例配置,展示了如何在Nginx中使用rewrite实现防盗链:
打开Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/default。
在server块中,添加以下配置:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
valid_referers none blocked yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
rewrite ^/ http://example.com/forbidden.html redirect;
}
}
这里的配置表示,对于以.gif、.jpg、.jpeg、.png、.bmp和.swf结尾的请求,我们将检查请求头中的Referer字段。valid_referers指令定义了允许的来源,包括none(直接输入URL访问)、blocked(空的Referer)、yourdomain.com和所有以.yourdomain.com为后缀的域名。
如果Referer不在允许的列表中($invalid_referer为真),则使用rewrite指令将请求重定向到一个名为forbidden.html的自定义页面。你可以根据需要修改这个页面的URL。
保存配置文件并重启Nginx服务。在Debian/Ubuntu系统上,可以使用以下命令:
sudo service nginx restart
在CentOS/RHEL系统上,可以使用以下命令:
sudo systemctl restart nginx
现在,当其他网站试图直接引用你的图片、视频等资源时,将会被重定向到一个自定义的禁止访问页面。