Nginx+Tomcat 部署 request.getScheme获取不到Https问题
通过浏览器输入https://www.xxx.com,request.getScheme()获取到的确实http而不是https.
通过request.getRequestURL()拿到的也是http://www.xxx.com
分析原因,是因为用nginx+tomcat部署web服务,tomcat接受到的请求都是来自于nginx的http请求。
1 | request.getScheme() //总是 http,而不是实际的http或https |
解决办法:
1、在nginx 配置location处加上proxy_set_header X-Forwarded-Scheme $scheme;
通过request.getHeader(“X-Forwarded-Scheme”)获取真实的scheme
2、在Tomcat server.xml中添加
1 | <Engine name="Catalina" defaultHost="localhost"> |