nginx 反向代理 获取三方图片时的referer问题
使用第某网站做一个网页,但想网址显示成自己的,又不想用301,于是使用nginx 反代理。
1.在使用nginx 反代理一个网页时,遇到被代理的网站有一个指向cdn的图片,防盗链的问题。
nginx 设置如下。
2.查看被代理的网页发现:
<section class="page page-1 backgroundSize0" id="1092" style='background-image: url("http://img.weiye.me/zcimgdir/thumb/t_1465709656575cf458d71b6.jpg");
这个这个图片会带上我反代的网址作为referer.导致图片403,
经测试,如果不带referer,或者referer是被代理的url的话,图片是可以获取的。
所以问题来了,这个该怎么设置nginx呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
跟 nginx 没关系,这个请求根本就不过你的 nginx,你控制不了。
找到了一些答案.
1.因为html不太熟悉,目前查下来就是被代理的网页,请求了第三方网站图片,该网站会校验referer,但可以允许referer为空。
禁止请求时带上referer,问题就解决了。
Referrer Policy这里看到referrer的介绍,
嗯嗯,referer是可以禁止的,那我们就可最简单的,全局禁止referer
2.所以到这里
3.这里
how-to-add-a-response-header-on-nginx-when-using-proxy-pass看到一文章,
4.所以现在就是用add_header或者more_set_header加一个禁止referrer,
对html不太熟,该怎么加?
你好,受你的启发我解决了这个问题,在nginx中配置相应头Referrer-Policy即可控制浏览器不携带Referrer
location ^~ /c/ {
}