Nginx+Tomcat 环境下的防图片盗链配置-阿里云开发者社区

开发者社区> 科技小先锋> 正文

Nginx+Tomcat 环境下的防图片盗链配置

简介:
+关注继续查看

 本来觉得是个挺简单的事情,仔细看了下还是有一些细节需要注意的。网上基本都是仅nginx环境下的配置,这里给一个用Nginx+Tomcat结构的配置及其简要说明,主要有以下两个步骤,选任意一个方案即可。


1. Nginx防盗链的配置

  a. 方法一:增加ngx_http_accesskey_module模块,但是需要相应的配置,网上相关资料很多,不赘述。

         优点:控制的逻辑严密,非常可靠地解决方案。

        ■ 缺点:需要做较多的修改。

  b. 方法二:直接增加Refer的判断,对于不符合设定的请求予以禁止。这里有个地方需要注意,后端有Tomcat,所以还要加上proxy pass的相关配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
        # 防止图片盗链,只判断refer是否为本站
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
            valid_referers none blocked    *.taoximao.com taoximao.com;
            if ($invalid_referer) {
                return 403;
            }
            # 要加上后端访问的地址
            proxy_redirect     off;
            proxy_pass         http://web_server;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        ■ 优点:配置相当简单,也不用安装其他模块。

        ■ 缺点:无法防止别人伪造Refer信息,也就是说人家真的想去偷窃,稍微麻烦点还是阻止不了;另外还发现如果refer为空还是能正常访问到,控制放的很宽。


2. Tomcat禁止直接访问的配置

(注:如果Tomcat还能直接访问,其实Nginx的那个防盗链就没意义了,加个端口就跳过配置了)

  a. 方法一:在Linux下配置iptables,将8080的端口禁止外网访问即可,这样就只能通过Nginx来访问。网上很多资料,不赘述。

        ■ 优点:直接系统级别配置,与应用本身无关,高度可靠。

        ■ 缺点:额外配置,配置起来也有点麻烦。

  b. 方法二:直接配置Tomcat允许的访问IP,精确到每个Host。只要修改tomcat下的conf/server.xml文件,在Host之间加上允许的访问IP即可,直接访问会返回403错误。

1
2
3
4
5
      <Host name="test1.taoximao.com"  appBase="webapps_test1"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127.0.0.1" deny=""/>
      </Host>

        ■ 优点:配置简单,实现的效果也能满足需要。

        ■ 缺点:有时候会出现图片不显示。



本文转自passover 51CTO博客,原文链接:http://blog.51cto.com/passover/1547372,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux操作系统环境下jdk的配置和tomcat中web项目部署(从U盘中)
1.在自己用户下创建想要放java 的jdk和tomcat的目录,并用超级用户给与操作权限:(例为jtom目录下创建java和tomcat目录):   (1).登录root用户 :su   (2).进入我的文档目录:cd  /                                         ls  (3).在"/boot"下创建 jtom目录: mkdir  
1562 0
vc/mfc获取rgb图像数据后动态显示及保存图片的方法
vc/mfc获取rgb图像数据后动态显示及保存图片的方法 该情况可用于视频通信中获取的位图数据回放显示或显示摄像头捕获的本地图像 第一种方法 #include 加载 vfw32.lib  链接库 [cpp] view plaincopy   //----------...
1445 0
C#技术分享【PDF转换成图片——11种方案】
最近公司安排了个任务:要求交付一个DLL,实现【PDF转换成图片】,最好的效果是能够掌握所有源码,实在不行才交付第三方DLL。研究了6个工作日+1双休+每晚9点下班,逛遍了国内外各种论坛,还是没能成功整出源码,但发现了很多有用的工具和其他工具,在此分享给大家。
1765 0
nginx图片服务器配置proxy_cache及purge错误解决方法
这里主要分享下centos环境nginx搭建图片服务器的过程以及遇到错误解决方法 一.nginx安装 这里需要用到ngx_cache_purge模块建议采用源码编译方式安装 1.安装pcre 下载pcre安装包 然后 .
1221 0
C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理) .
原文:C#技术分享【PDF转换成图片——13种方案】(2013-07-25重新整理) . Acrobat.dllc#PDFPDFRender4NET.dllpdf转图片 写在最前面:为了节约大家时间,博主把最常用的方法写在第一条,如果不满足您的需要,您可以继续往后看。
1102 0
4571
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载