오늘 새로운 프로젝트가 시작되었는데 회사에서 전달에 f5를 사용하고 https 프로토콜을 사용하는데, 우리 프로젝트에서는 request.getScheme()이 대신 http를 가져옵니다. 운영 및 유지 관리에 문제가 있습니다. 우리 코드로.... , Tomcat의 서브를 확인했습니다. 이 문제가 발생한 사람이 있습니까? 어떻게 해결하나요?
阿神2017-05-27 17:43:49
https는 일반적으로 역방향 프록시(예: F5)에 의해 구현되며(즉, SSL 인증서가 역방향 프록시에 구성됨) Tomcat 자체는 http 프로토콜을 사용합니다.
역방향 프록시는 레이어 7 전달을 사용하므로 request.getRemoteAddr()
不可能得到用户真实IP地址,所以通常在反向代理那边配X-Forwarded-For
,Tomcat这边用request.getHeader("X-Forwarded-For")
拿到用户真实IP地址)。同样道理,request.getScheme()
也不可能得到用户真实的协议,通常会在反向代理那边配X-Forwarded-Proto
这种Header,Tomcat这边用request.getHeader("X-Forwarded-Proto")
사용자가 https 상태인지 여부를 확인합니다.
漂亮男人2017-05-27 17:43:49
당신의 문제가 무엇인지 모르겠습니다. .
Tomcat에 인증서가 없는 경우 https를 어떻게 사용하나요?
저는 f5를 사용해 본 적이 없습니다. 유사한 nginx는 SSL을 제거할 수 있습니다. 즉, 귀하의 애플리케이션은 https