Loading... 转这篇文章是今天要给ao.ci的mp4视频配置个防盗链,试了一个小时期间各种升级nginx编译nginx加模块等等,最后才发现是一个空格惹出来的。大家可以借鉴一下。 nginx防盗链有两种这里只介绍nginx自带的<code>valid_referers</code>防盗链。 <strong>防盗链的一般方法是在server或者location段中加入如下格式代码:</strong> <p style="padding-left: 30px;"><span style="color: #ff0000;"><em>valid_referers none blocked server_names</em></span></p> 其中 none表示空的来路,也就是直接访问,比如直接在浏览器打开一个图片。blocked表示被防火墙标记过的来路,server_names是域名,可以用*.demo.com来表示所有的二级域名。 <img class="wp-image-3706 aligncenter" src="https://jay.tg/usr/uploads/2017/08/404.jpg" alt="" width="482" height="482" style=""> <!--more--> <pre class="lang:default decode:true">location ~ *\.(wma|wmv|asf|mp3|mp4|mmf|zip|rar|jpg|gif|png|swf|flv)$ { valid_referers none blocked *.ao.ci ao.ci; if ($invalid_referer) { rewrite ^/ /404.jpg; #return 403; } }</pre> <strong>重启nginx有如下提示:</strong> nginx: [emerg] unknown directive "if($invalid_referer)" in /usr/local/nginx/nginx.conf:50 <strong>解决办法:</strong> if和后面括号以及变量等号这些元素都要有空格 <ul> <li>第一行:wma|gif|jpg|png|swf|flv,表示对wma、gif、jpg、png、swf、flv后缀的文件实行防盗链</li> <li>第二行:server_names,表示允许访问的来路 *.ao.ci,ao.ci这2个来路进行判断(*代表任何,任何的二级域名)</li> <li>第三行:if{}里面内容的意思是,如果来路不是指定来路就跳转到403错误页面,当然直接返回404也是可以的,也可以是图片。</li> <li></li> </ul> <strong>禁止IP访问,配置如下:</strong> <pre class="lang:default decode:true">server { listen 80; return 444; }</pre> <strong>nginx针对的目录的防盗链</strong> <pre class="lang:default decode:true">location /img/ { root /data/img/; valid_referers none blocked *.demo.com demo.com; if ($invalid_referer) { rewrite ^/ http://www.demo.com/images/error.gif; #return 403; } }</pre> 以上是nginx自带的防盗链功能。 Last modification:June 25, 2021 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 如果解决了你的困扰, 赏杯咖啡吧!
One comment
28:) 刚刚试了一下,这个功能对大部分小白用户挺有用的。高级玩家能伪造referer的除外。
觉得ao.ci的网速很不错,请问一下博主是用的哪里的主机,在此先谢谢