Nginx反向代理其他站点,Referer防盗链导致图片403错误

问题

由于需要在我们的小程序中链接其他外部的网站做内容显示来满足我们的需求,但微信小程序中web-view加载网页,需要在微信公众号平台中设置业务域名,并且业务域名需要做服务器校验,这就会导致我们无法直接的使用外部的网站(如:www.baidu.com)

 

解决方案

使用 Nginx 做反向代理,配置如下:

location /路径 {
        proxy_pass 代理网站;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_redirect off;
}

但在使用上述配置后,又出现了其他的问题,由于代理网站图片资源做了Referer防盗链,这就导致网站加载出来后,图片报403错误,导致无法正常加载

鉴于上述问题,分析原因,通过反向代理访问后,页面内容已经输出至浏览器,图片等资源则直接是请求的代理网站服务器,代理网站服务器做了Referer防盗链,如果Referer为空或者是代理网站域名则通过授权,否则就出现上诉问题 403 错误

那怎么解决了?

通过上诉分析,我们知道,通过反向代理访问,页面内容响应之前,我们改变内容再输出,比如说替换代理服务器网站为我们自己的域名,并通过我们自己的域名再次做反向代理,或者页面资源请求时不携带Referer

在这里,因为可以通过不携带Referer来简便处理ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值