网上虽然有很多Nginx防盗链的方法, 但那些都是白名单制度, 也就是非白名单内的网站外链都给屏蔽了, 但是这个设置并不适合有些网站, 现在分享一个Nginx限制部分网站外链权限的方法.
在配置文件里面加上下面的配置文件
if ($http_referer ~* abc123.org|abc123.com|abc124.com|67.67.67|67.67.68) { rewrite ^/ https://www.google.com/logo.png; }
上面的意思是屏蔽那些网站或IP段的外链请求, 并且替换图片为https://www.google.com/logo.png
为何还要屏蔽IP段呢? 因为好多大人网站会直接采用IP地址访问, 所以加上了这个匹配规则.
再放一个设置部分网站跳转的方法
if ($http_referer ~* testing.com|test123.cn|test321.net) { rewrite ^(.*)$ https://s2.axxx.com$1 permanent; }
如现在的url是https://s1.axxx.com/test.png, 如果以上的网址访问过来会自动跳转到https://s2.axxx.com/test.png上. 其他网站外链过来的话连接不变, 这样可以把一部分访问量很大的网站流量转移到其他服务器上.
如果只需要把部分文件夹做跳转还可以用下面的方法
rewrite ^/images/(.*)$ https://s2.axxx.com/images/$1 permanent;
上面是说把images目录下所有的文件转向到https://s2.axxx.com/images/目录下.
其他具体的应用需要根据自己的网站来设置吧.