Linux Centos7下实现nginx防盗链部署
2019-09-08 15:47
1861 查看
一、原理:
nginx 防止网站资源被盗用模块
ngx_http_referer_module
HTTP Referer是Header的一部分,当浏览器向Web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理,例如防止未经允许的网站盗链图片、文件等。因此HTTP Referer头信息是可以通过程序来伪装生成的,所以通过Referer信息防盗链并非100%可靠,但是,它能够限制大部分的盗链情况.
二、防盗链配置
[root@nginx-server ~]# vim /etc/nginx/nginx.conf
日志格式添加"$http_referer",默认已经打开了的,不需要操作。
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
三、配置原服务器
准备两台机器,一张图片
1、在网站发布目录下编辑html文件并准备一张图片名为33.jpg,这里网站发布目录为/web1
vim /web1/index.html
<html> <head> <meta charset="utf-8"> <title>hostphoto.com</title> </head> <body> <center><img src="33.jpg" alt="fangxi" width="1000px" height="900px" /></center> </body> </html>
2、编辑nginx子配置文件
location / { root /web1; index index.html index.htm; valid_referers none blocked 192.168.16.150; if ($invalid_referer) { return 403; } }
• none : 允许没有http_refer的请求访问资源;
• blocked : 允许不是http://开头的,不带协议的请求访问资源---被防火墙过滤掉的;
• server_names : 只允许指定ip/域名来的请求访问资源(白名单);
3、检查配置文件是否有错误,没有错误重新加载。
nginx -t nginx -s reload
四、配置要盗用的服务器
1、配置nginx访问页面并创建目录
location / { root /web1; index index.html index.htm; }
mkdir /web1
2、创建页面
vim /web1/index.html
<html> <body style="background-color:red;"> <img src="http://192.168.16.150/33.jpg" /> </body> </html>
五、测试
当开启防盗链时,访问要盗用的服务器,图片显示不出来。
当把防盗链代码注释之后,访问要盗用的服务器,图片就可以显示出来。
相关文章推荐
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
- nginx和tomcat实现rr,ip_hash,sticky调度,实现session共享,nginx网页加密,网页重定向,盗链和防盗链技术的实现
- nginx Win下实现简单的负载均衡(1)nginx搭建部署
- nginx实验---lnmp实现多虚拟主机部署wordpress和phpmyadmin,并为后者提供https,及rewrite功能
- LVS+keepalived+nginx+tomcat部署实现
- LVS+keepalived+nginx+tomcat部署实现
- Django + Uwsgi + Nginx 实现生产环境部署
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
- 使用nginx实现一个主机部署多域名指向不同docker项目
- 通过lua来配置实现Nginx服务器的防盗链功能
- 【转】五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)
- ubuntu16 部署tomcat 并通过 nginx 实现 https 访问
- 菜鸟nginx源码剖析 配置与部署篇(一) 手把手实现nginx "I love you"
- Nginx配置静态资源缓存时间及实现防盗链
- Django + Uwsgi + Nginx 实现生产环境部署
- 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序
- [Nginx]用Nginx实现与应用结合的访问控制 - 防盗链
- Centos 7部署docker+nginx+keepalived实现高可用web集群
- [Nginx]用Nginx实现与应用结合的訪问控制 - 防盗链
- nginx利用referer指令实现防盗链配置