Nginx系列-5.配置Nginx的防盗链
目录 - Nginx系列
Nginx系列-1.Linux下安装Nginx
Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构
Nginx系列-3.配置Nginx虚拟主机
Nginx系列-4.Nginx日志配置及日志切割
Nginx系列-5.配置Nginx的防盗链
Nginx系列-6.配置Nginx的HTTPS
Nginx系列-7.配置Nginx使用uwsgi支持web.py框架
Nginx系列-8.配置Nginx+Apache实现动静分离
Nginx系列-9.配置NFS实现Nginx实现动静分离
Nginx系列-10.采用Nginx搭建正向代理服务
Nginx系列-11.配置Nginx反向代理和负载均衡
实验环境
一台最小化的 CentOS 7.3 虚拟机
ip: 192.168.204.133
nginx 版本为 1.12.2
一、配置盗链网站
- 启动一台
nginx
虚拟机,配置两个网站vim /etc/nginx/conf.d/vhosts.conf
添加如下内容
server { listen 80; server_name site1.test.com; root /var/wwwroot/site1; index index.html; location / { } } server { listen 80; server_name site2.test.com; root /var/wwwroot/site2; index index.html; location / { } }
- 在宿主机编辑
C:\Windows\System32\drivers\etc\hosts
文件192.168.204.133 site1.test.com 192.168.204.133 site2.test.com
- 创建网站根目录
mkdir /var/wwwroot cd /var/wwwroot mkdir site1 mkdir site2 echo -e "<h1>site1</h1><img src=‘1.jpg‘>" >> site1/index.html echo -e "<h1>site2</h1><img src=‘http://site1.test.com/1.jpg‘>" >> site2/index.html
- 将
1.jpg
上传到/var/wwwroot/site1
目录 - 启动服务
启动nginx
服务systemctl start nginx
关闭防火墙
setenforce 0 systemctl stop firewalld systemctl disable firewalld
- 在宿主机测试访问
http://site1.test.com
http://site2.test.com
二、配置site1.test.com
防盗链
- 编辑
nginx
配置文件server { listen 80; server_name site1.test.com; root /var/wwwroot/site1; index index.html; location / { } location ~ \.(jpg|png|gif|jpeg)$ { valid_referers site1.test.com; if ($invalid_referer) { return 403; } } } server { listen 80; server_name site2.test.com; root /var/wwwroot/site2; index index.html; location / { } }
- 重启
nginx
服务systemctl restart nginx
- 在宿主机测试访问
首先访问site1
http://site1.test.com
清除浏览器缓存后访问site2
http://site2.test.com
三、配置防盗链返回其他资源
- 编辑
nginx
配置文件
增加一个虚拟主机
对防盗链保护的资源路径进行重写server { listen 80; server_name site1.test.com; root /var/wwwroot/site1; index index.html; location / { } location ~ \.(jpg|png|gif|jpeg)$ { valid_referers site1.test.com; if ($invalid_referer) { rewrite ^/ http://site3.test.com/notfound.jpg; #return 403; } } } server { listen 80; server_name site2.test.com; root /var/wwwroot/site2; index index.html; location / { } } server { listen 80; server_name site3.test.com; root /var/wwwroot/site3; index index.html; location / { } }
- 建立
site3
根目录cd /var/wwwroot mkdir site3 echo -e "<h1>site3</h1><img src=‘notfound.jpg‘>" >> site3/index.html
- 上传
notfound.jpg
上传至/var/wwwroot/site3
目录 - 重启
nginx
服务systemctl restart nginx
- 在宿主机编辑
C:\Windows\System32\drivers\etc\hosts
文件
增加对site3.test.com
的映射192.168.204.133 site1.test.com 192.168.204.133 site2.test.com 192.168.204.133 site3.test.com
- 在宿主机访问
http://site2.test.com
可以看到,在site2
中盗用的site1
的1.jpg
文件被重定向到了site3
上的notfound.jpg
文件
原文地址:http://blog.51cto.com/tong707/2126275
时间: 2024-10-13 02:37:58