关键点:
(1)在Nginx中通过user_agent区分请求来源是Android还是IOS。
(2)通过referer来源,判断图片是网页中访问还是直接访问图片,因为如果在网页中加载图片带有referer请求参数表明网页域名(或者IP地址),直接在浏览器中打开图片是没有携带referer请求参数的。
配置文件内容:
server {
listen 8000;
location / {
root /opt/root;
index index.html index.htm;
}
location /img {
###通过判断Android还是iOS
if ($http_user_agent ~* iPhone|Android){
root /opt;
break;
#return 500;
}
#root /opt;
##判断图片请求来源
valid_referers none blocked YOUR_HOST;
if ($invalid_referer ~* 0){#注意if和(之间的空格,不然会报错
return 404;
#root /opt;
}
if ($invalid_referer ~* 1){#注意if和(之间的空格,不然会报错
root /opt;
}
}
}