环境准备,两台机器,其中一台作为图片服务器,另一台做网页服务器,通过它访问到另一台上面的图片
图片服务器
1 设置图片发布目录
vim /etc/nginx/conf.d/default.conf
location / {
root /data/imgs;
}
2 nginx -s reload
3 创建一个图片存放目录
mkdir -p /data/imgs
4 给该目录下放一张图片,test.jpg
在浏览器中访问
网页服务器
1 编辑配置文件
server {
listen 80;
server_name localhost;
location / {
root /home/www/nginx;
index index.html;
}
}
2 vim /home/www/nginx/index.html
<!DOCTYPE html>
<html>
<head>
<title>PHP 动态网站</title>
</head>
<body>
<img src="http://192.168.122.42/test.jpg">
</body>
</html>
3 nginx -s reload
此时42图片服务器并没有上设置任何防盗链,所以可以访问到的
防盗配置
防盗模块:ngx_http_referer_module
编辑配置文件
location / {
root /data/imgs;
valid_referers none blocked www.jd.com; #允许none blocked www.jd.com www.jd.com这些访问(具体解释如下),如果不是这些返回403
if ($invalid_referer) {
return 403;
}
}
- none : 允许没有http_refer的请求访问资源;
- blocked : 允许不是http://开头的,不带协议的请求访问资源—被防火墙过滤掉的;
- server_names : 只允许指定ip/域名来的请求访问资源(白名单);
访问测试(会发现图片访问不到了)