nginx代理https后,spring mvc web应用redirect https变成http

简介: nginx代理https后,spring mvc web应用redirect https变成http

用nginx 代理https后,应用redirect https变成http,导致网站无法访问


浏览器到nginx是https,nginx到应用服务器变成http,

应用服务器,再做302 redirect的时候,返回的redirect 地址就变成http的地址;

原因

原因是spring mvc的servlet的secheme取值,request.getScheme()

是取请求里的一个scheme值,所有这个值在nginx代理时要设置成https

其中: request.getScheme() return http but not https.

解决

配置:proxy_redirect http:// $scheme://;

server {
    listen 80 default_server;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect http:// $scheme://; #该指令会将后端响应header location内容中的http://替换成用户端协议https://。
    }
}

其他参考

可能是因为springmvc底层使用的是 httpservletresponse.sendredirect,并没有使用response.isSecure进,所以最后发送的请求重定向的协议是http://


相关文章
|
2月前
|
缓存 前端开发 Java
Spring MVC 面试题及答案整理,最新面试题
Spring MVC 面试题及答案整理,最新面试题
96 0
|
2月前
|
SQL JavaScript Java
springboot+springm vc+mybatis实现增删改查案例!
springboot+springm vc+mybatis实现增删改查案例!
26 0
|
2月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
45 1
|
1天前
|
安全 网络协议 算法
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
【计算机网络】http协议的原理与应用,https是如何保证安全传输的
|
15天前
ctfhub->web->web前置技能->HTTP协议->请求方式
ctfhub->web->web前置技能->HTTP协议->请求方式
|
18天前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
23 3
|
18天前
|
存储 前端开发 Java
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
14 1
|
18天前
|
前端开发 Java Spring
数据之桥:深入Spring MVC中传递数据给视图的实用指南
数据之桥:深入Spring MVC中传递数据给视图的实用指南
31 3
|
18天前
|
安全 Linux iOS开发
【热门话题】 Fiddler:一款强大的Web调试代理工具——安装与使用详解
Fiddler是一款强大的Web调试工具,适用于Windows、macOS和Linux,用于捕获、记录和分析HTTP/HTTPS流量。本文详细介绍了Fiddler的安装步骤,包括下载、安装和配置,特别是信任根证书和代理设置。在使用方面,讲解了如何启动/停止捕获流量、查看和管理会话,以及重发请求、编辑请求/响应和清除会话。此外,还探讨了进阶功能,如自定义过滤规则、使用AutoResponder模拟服务器响应、性能分析和统计,以及插件扩展和脚本编写。Fiddler是学习HTTP协议和解决Web问题的得力工具。
43 1
|
27天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南