Nginx防盗链设置
防盗链说明
一般对于很多站点来说,基本上都会使用Nginx
、Apache
这种设置防盗链,主要配置很简单,这里就说下使用方法,总体来说,虽然这种还是有些局限性,但总比没有好;基本上设置这种防盗链,可以指定站点使用转码后的m3u8
或者mp4
等资源链接,其它站点调用均会显示403
无权限。
Nginx防盗链
这里以宝塔面板为例,当然会玩的就随便使用什么安装包,面板啥的,只要知道添加到Nginx
配置文件即可。
以下步骤是在配合宝塔安装完程序,且绑定域名后进行的操作,如果还没绑定域名,请先看教程进行绑定即可。
先点击域名设置-反向代理-编辑配置文件。
将以下代码全部复制覆盖进去:
location ~ .*\.(jpg|mp4|gif|m3u8|ts)$
{
valid_referers none blocked *.zhuama.co;
if ($invalid_referer){
return 403;
}
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
location /
{
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
}
大致需要修改的参数如下:
1、valid_referers none blocked后面的参数就是你允许使用mp4等资源的站点,有几个加几个,中间用空格隔开。
比如我想让zhuanma.co和该域名的所有二级域名都能使用,包括www.moemv.com这个域名,则配置如下:
valid_referers none blocked *.zhuama.co www.moemv.com;
2、proxy_pass后面为反代的地址即程序的ip地址,这里默认是高级版的,当然如果你修改过端口,则自行处理。
最后保存即可,你就可以发现只有你设置的域名可以使用转码后的jpg
、mp4
、gif
、m3u8
、ts
等资源链接,其它域名都会返回403
。
Apache防盗链
如果你是使用的Apache
,这里也提供一个配置文件,设置步骤和Nginx
一样,这里只列举代码:
#PROXY-START/
<IfModule mod_proxy.c>
ProxyRequests Off
SSLProxyEngine on
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://test.zhuanma.me/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://test.zhuanma.me$ [NC]
RewriteCond %{HTTP_REFERER} !^http://test.zhuanma.me/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://test.zhuanma.me$ [NC]
RewriteRule .*\.(jpg|mp4|gif|m3u8|ts)$ http://www.baidu.com/ [R,NC]
</IfModule>
大致需要修改的参数如下:
http://127.0.0.1:3000/ 为反代域名,自行修改。
http://test.zhuanma.me 为你需要引用的第三方程序域名,全部替换掉。
jpg|mp4|gif|m3u8|ts为防盗后缀,自行添加后缀,中间用|隔开。
http://www.baidu.com/ 为其他域名触发防盗后跳转的域名或路径,自行修改
最后保存即可,你就可以发现只有你设置的域名可以使用转码后的jpg
、mp4
、gif
、m3u8
、ts
等资源链接,其它域名都会跳转百度网站。