本文主要包含nginx防盗链,nginx 图片服务器,nginx,nginx什么意思,nginx配置等服务器相关知识,网友希望可以进行参考
第一种:使用referer模块功能较弱)
location ~* \.(jpg|gif|png)$ {
valid_referers none blocked .g.cn;
if ($invalid_referer) {
rewrite ^.*$ /no.jpg break;
#rewrite ^.*$ http://y.cn/no.jpg permanent;
}
}注:
valid_referers 相关于白名单,检测referer头,不符合时$invalid_referer变量值为1。
none 允许直接访问被保护的图片;可选。
blocked 允许firewall伪装,referer:xxx也被认为是有效的;可选。
.g.cn 当referer的主机部分为g.cn及其所有二级域名时允许访问。
附:使用telnet测试blocked参数valid_referers不使用none参数)
#查看预设图片和被保护的图片大小 [root@y g.cn]# ll ok.png no.jpg -rw-r--r-- 1 root root 1575 9月 17 19:54 no.jpg -rw-r--r-- 1 root root 15316 9月 17 20:38 ok.png 使用telnet测试blocked参数,注意查看Content-Length的区别 [root@localhost ~]# telnet 192.168.2.126 80 Trying 192.168.2.126... Connected to y.cn (192.168.2.126). Escape character is '^]'. HEAD /ok.png HTTP/1.1 host: g.cn HTTP/1.1 200 OK Server: nginx Date: Tue, 17 Sep 2013 12:51:20 GMT Content-Type: image/jpeg Content-Length: 1575 Last-Modified: Tue, 17 Sep 2013 11:54:07 GMT Connection: keep-alive Accept-Ranges: bytes Connection closed by foreign host. #在上面的测试中,没有使用合法referfer头,返回no.jpg(大小为1575字节)。 [root@localhost ~]# telnet 192.168.2.126 80 Trying 192.168.2.126... Connected to y.cn (192.168.2.126). Escape character is '^]'. HEAD /ok.png HTTP/1.1 host: g.cn referer: g.cn HTTP/1.1 200 OK Server: nginx Date: Tue, 17 Sep 2013 12:52:40 GMT Content-Type: image/png Content-Length: 15316 Last-Modified: Tue, 17 Sep 2013 12:38:33 GMT Connection: keep-alive Accept-Ranges: bytes Connection closed by foreign host. #在上面的测试中,使用了g.cn作为referer头,正常访问ok.png(大小为15316字节)。
第二种:使用第三方accesskey模块参考:http://wiki.nginx.org/HttpAccessKeyModule)
这种方法需要php或其它程序脚本的支持产生指定的key的md5来访问资源。
第三种:使用SecureLink模块
略...
本文出自 “notepad” 博客,请务必保留此出处http://sndapk.blog.51cto.com/5385144/1298403

