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,如需转载请自行联系原作者

相关文章
|
17天前
|
移动开发 前端开发 JavaScript
前端vue2、vue3去掉url路由“ # ”号——nginx配置(一)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
52 0
|
18天前
|
JavaScript 前端开发 应用服务中间件
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
angular引入包、路由权限配置、打包问题与nginx配置问题(简单部署)
24 0
|
17天前
|
前端开发 JavaScript 应用服务中间件
前端vue2、vue3去掉url路由“ # ”号——nginx配置(二)
前端vue2、vue3去掉url路由“ # ”号——nginx配置
48 0
|
18天前
|
XML Java 应用服务中间件
Tomcat_servlet部署、编译、配置、打包
Tomcat_servlet部署、编译、配置、打包
21 0
|
2天前
|
应用服务中间件 nginx
nginx配置集群轮训策略
nginx配置集群轮训策略
10 0
|
3天前
|
安全 网络协议 应用服务中间件
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
一文读懂HTTPS⭐揭秘加密传输背后的原理与Nginx配置攻略
|
4天前
|
IDE Java 应用服务中间件
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
JDK1.6.0+Tomcat6.0的安装配置(配置JAVA环境)
15 1
|
4天前
|
网络协议 Java 应用服务中间件
HTTP协议与Tomcat在IJ中配置
本文是对自己学习JavaWeb学习的笔记的总结,添加了一些自己的东西,然后进行一次复盘,并加深一下学习的理解和印象.其中内容主要包括对http协议的详细介绍,java常见服务器的初步介绍,以及IJ旧版和新版的tomcat服务器的配置图解教程
|
11天前
|
应用服务中间件 PHP nginx
php如何实现检测nginx配置的正确性
请确保在执行此操作时,PHP有足够的权限来执行Nginx命令和访问Nginx配置文件。另外,将上述代码嵌入到您的应用程序中时,要注意安全性,以防止潜在的命令注入攻击。
50 3
|
17天前
|
安全 应用服务中间件 网络安全
linux_nginx中添加ssl配置(open ssl)
linux_nginx中添加ssl配置(open ssl)
25 1