Nginx防盗链设置

防盗链说明

一般对于很多站点来说,基本上都会使用NginxApache这种设置防盗链,主要配置很简单,这里就说下使用方法,总体来说,虽然这种还是有些局限性,但总比没有好;基本上设置这种防盗链,可以指定站点使用转码后的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地址,这里默认是高级版的,当然如果你修改过端口,则自行处理。

最后保存即可,你就可以发现只有你设置的域名可以使用转码后的jpgmp4gifm3u8ts等资源链接,其它域名都会返回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/ 为其他域名触发防盗后跳转的域名或路径,自行修改

最后保存即可,你就可以发现只有你设置的域名可以使用转码后的jpgmp4gifm3u8ts等资源链接,其它域名都会跳转百度网站。