背景:
A:客户端
B:应用服务器
C:文件服务器
B和C之间的网络是正常,应用服务器可以正常上传下载文件。
A和B网络是正常的,用户可以正常访问系统。
A和C的网络不通,文件服务器出于安全等原因考虑不对用户开放。
解决方案:
方案一:后端直接获取文件流,以流形式返回给前端给用户(这里我们不用这种)
方案二:通过nginx进行代理,类似VPN,让客户端A通过应用服务器B代理访问文件服务器C
步骤:
(1)、nginx代码文件服务器
location ^~ /files-proxy/ {
proxy_pass http://文件服务器域名/;
}
(2)、后端接口返回的链接需要替换域名为代理地址
注意:如果链接给第三方使用,最好加上nginx部署所在ip,不然无法定位到,如下图的files-proxy改为 ip地址/files-proxy