防盜鏈?zhǔn)且环N保護(hù)網(wǎng)站資源的方法,可以防止其他網(wǎng)站直接引用你的資源。通過使用rewrite規(guī)則,我們可以實(shí)現(xiàn)防盜鏈功能。以下是一個(gè)示例配置,展示了如何在Nginx中使用rewrite實(shí)現(xiàn)防盜鏈:
打開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
結(jié)尾的請求,我們將檢查請求頭中的Referer
字段。valid_referers
指令定義了允許的來源,包括none
(直接輸入U(xiǎn)RL訪問)、blocked
(空的Referer)、yourdomain.com
和所有以.yourdomain.com
為后綴的域名。
如果Referer
不在允許的列表中($invalid_referer
為真),則使用rewrite
指令將請求重定向到一個(gè)名為forbidden.html
的自定義頁面。你可以根據(jù)需要修改這個(gè)頁面的URL。
保存配置文件并重啟Nginx服務(wù)。在Debian/Ubuntu系統(tǒng)上,可以使用以下命令:
sudo service nginx restart
在CentOS/RHEL系統(tǒng)上,可以使用以下命令:
sudo systemctl restart nginx
現(xiàn)在,當(dāng)其他網(wǎng)站試圖直接引用你的圖片、視頻等資源時(shí),將會(huì)被重定向到一個(gè)自定義的禁止訪問頁面。