nginx+tomcat 架构 HttpServletRequest.getScheme()获取正确的协议

原创 2015年07月07日 16:59:34

今天遇到一个问题,我通过浏览器输入https://www.mysite.com,后台通过request.getScheme()获取到的确实http而不是https

通过request.getRequestURL()拿到的也是http://www.mysite.com

分析原因,是因为用nginx+tomcat部署web服务,tomcat接受到的请求都是来自于nginx的http请求。

解决办法:在nginx 配置location处加上proxy_set_header X-Forwarded-Scheme  $scheme; 

后台通过request.getHeader("X-Forwarded-Scheme")获取真实的scheme

相关文章推荐

nginx+tomcat 架构 HttpServletRequest.getScheme()获取正确的协议

今天遇到一个问题,我通过浏览器输入https://www.mysite.com,后台通过request.getScheme()获取到的确实http而不是https 通过request.getRequ...

Nginx SSL+tomcat集群,request.getScheme() 取到https正确的协议详解

公司之前用的是http,但是出于苹果app审核和服务器安全性问题,要改为https,我们公司用的是沃通的ssl,按照沃通的官方文档提供的步骤完成服务器的配置。 架构上使用了 Nginx +tomcat...
  • tjcyjd
  • tjcyjd
  • 2017年04月15日 17:08
  • 1761

Servlet学习笔记(四):Servlet的请求与响应

客户端浏览器发送一个请求,服务器作出一系列操作后作出一个响应,发送给客户端,完成一次Web过程过程操作。Web编程的过程就是通过分析客户需要什么信息或者进行了什么操作,然后进行一系列的处理,最后通过响...

servlet request请求对象常用方法总结

1. request请求对象常用方法: public void doPost(HttpServletRequest request, HttpServletResponse response)  ...

nginx代理后,获取request的ip

应用程序部署上线,一般都会用nginx之类的来进行反向代理,而不是直接访问tomcat之类的容器. 这时候如果用平时的获取ip的代码,就只会获取到nginx所在服务器的ip, 就失去了本身的意义. 今...

nginx+tomcat影响request值

1、在代理模式下,Tomcat 如何识别用户的直接请求(URL、IP、https还是http )? 在透明代理下,如果不做任何配置Tomcat 认为所有的请求都是 Nginx 发出来的,这样会导致如...

nginx源码分析之http解码实现

分析nginx是如何解析并且存储http请求的。对非法甚至恶意请求的识别能力和处理方式。可以发现nginx采用状态机来解析http协议,有一定容错能力,但并不全面...

实现Nginx代理WSS协议

因为线上H5游戏需要加上SSL,不想在原来的Web 服务器和游戏服务器支持SSL,只希望 在Nginx代理集群支持SSL。整体架构如下:   从上图可以看出需要总共涉及到https/http 和...

Nginx SSL+tomcat集群,request.getScheme() 取到https正确的协议

最近在做一个项目, 架构上使用了 Nginx +tomcat 集群, 且nginx下配置了SSL,tomcat no SSL,项目使用https协议   ...

request.getScheme() 使用方法

今天在看代码时,发现程序使用了 request.getScheme() 。不明白是什么意思,查了一下。结果整理如下: 1、request.getScheme() 返回当前链接使用的协议;一般应用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx+tomcat 架构 HttpServletRequest.getScheme()获取正确的协议
举报原因:
原因补充:

(最多只允许输入30个字)