Nginx+Tomcat 环境下的防图片盗链配置
2014-09-01 13:42
351 查看
本来觉得是个挺简单的事情,仔细看了下还是有一些细节需要注意的。网上基本都是仅nginx环境下的配置,这里给一个用Nginx+Tomcat结构的配置及其简要说明,主要有以下两个步骤,选任意一个方案即可。
1. Nginx防盗链的配置
a. 方法一:增加ngx_http_accesskey_module模块,但是需要相应的配置,网上相关资料很多,不赘述。 ■ 优点:控制的逻辑严密,非常可靠地解决方案。 ■ 缺点:需要做较多的修改。 b. 方法二:直接增加Refer的判断,对于不符合设定的请求予以禁止。这里有个地方需要注意,后端有Tomcat,所以还要加上proxy pass的相关配置。
2. Tomcat禁止直接访问的配置
(注:如果Tomcat还能直接访问,其实Nginx的那个防盗链就没意义了,加个端口就跳过配置了)
a. 方法一:在Linux下配置iptables,将8080的端口禁止外网访问即可,这样就只能通过Nginx来访问。网上很多资料,不赘述。
■ 优点:直接系统级别配置,与应用本身无关,高度可靠。
■ 缺点:额外配置,配置起来也有点麻烦。
b. 方法二:直接配置Tomcat允许的访问IP,精确到每个Host。只要修改tomcat下的conf/server.xml文件,在Host之间加上允许的访问IP即可,直接访问会返回403错误。
■ 缺点:有时候会出现图片不显示。
1. Nginx防盗链的配置
a. 方法一:增加ngx_http_accesskey_module模块,但是需要相应的配置,网上相关资料很多,不赘述。 ■ 优点:控制的逻辑严密,非常可靠地解决方案。 ■ 缺点:需要做较多的修改。 b. 方法二:直接增加Refer的判断,对于不符合设定的请求予以禁止。这里有个地方需要注意,后端有Tomcat,所以还要加上proxy pass的相关配置。
# 防止图片盗链,只判断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错误。
<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>■ 优点:配置简单,实现的效果也能满足需要。
■ 缺点:有时候会出现图片不显示。
相关文章推荐
- jsp网页在浏览器中不显示图片_eclipse环境下配置tomcat中jsp项目的虚拟路径
- CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手册)
- Linux下Tomcat+Nginx服务器环境安装配置的简明教程
- NGINX的原理、安装、配置以及使用tomcat在linux上搭载集群环境
- Nginx、Tomcat线上环境优化配置
- 【第一季:Tomcat 8迷情】 第6集 Nginx与Tomat的组合环境基本配置
- CentOS 6.5 X64 JAVA环境配置(JDK+TOMCAT+NGINX)
- 配置Nginx图片服务器整套环境
- nginx+tomcat+memcache----1 jdk+tomcat 环境配置
- Mac Nginx 配置 Tomcat 配置 jdk环境变量 Nginx部署服务遇到的坑(3)
- CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手册)
- CentOS系统安装配置Nginx+tomcat+jdk+MySQL服务器环境
- window7环境下配置nginx+tomcat+memcached集群
- nginx 和 tomcat 生产环境配置 建议和方法
- 【原】nginx均衡多tomcat环境配置,及这种环境下的remoteIp及ServerName获取方式
- (二)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 防火墙配置
- window7环境下配置nginx+tomcat+memcached集群
- Nginx--Windows环境下Nginx+tomcat配置(包括动静分离)
- Mac Nginx 配置 Tomcat 配置 jdk环境变量 Nginx部署服务遇到的坑(1)
- CentOS下安装和配置MySQL-JDK-Tomcat-Nginx(个人官网环境搭建手冊)