防盗链是一种保护网站资源的方法,可以防止其他网站直接引用你的资源。通过使用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
现在,当其他网站试图直接引用你的图片、视频等资源时,将会被重定向到一个自定义的禁止访问页面。