在实际应用中,经常会用到nginx反向代理应用,这种时候就会出现一种情况,上传文件返回的并不是我们配置好的https协议,原因是通过java,request.getRequestURL()获取不到https。
原因
经过nginx反向代理后,协议信息没有转发到后端,或者后端没有设置protocolHeader
nginx配置
在nginx配置文件加上
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
springboot解决
只需要在配置文件.yml里添加下面标注的就可以。
remoteip:
protocol-header: "X-Forwarded-Proto"
remote-ip-header: "X-FORWARDED-FOR"
internal-proxies: "你自己的ip"