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://


相关文章
|
17天前
|
前端开发 JavaScript 测试技术
深入理解Web3:构建去中心化应用的未来
本文将探讨Web3技术的核心原理及其在构建去中心化应用(DApps)中的应用。我们将从Web3的定义开始,深入到其背后的区块链技术,智能合约,以及如何通过使用现代编程语言和框架实现去中心化应用的开发。此外,本文还将探讨当前Web3生态系统中面临的挑战和机遇,为读者提供一个全面的Web3技术概览,旨在启发开发者和技术爱好者探索去中心化世界的无限可能。
20 2
|
1天前
|
设计模式 存储 前端开发
Java Web开发中MVC设计模式的实现与解析
Java Web开发中MVC设计模式的实现与解析
|
1天前
|
Java Maven 开发者
深入剖析Spring Boot在Java Web开发中的优势与应用
深入剖析Spring Boot在Java Web开发中的优势与应用
|
1天前
|
SQL 监控 Java
Java Web应用中数据库连接池的配置与优化
Java Web应用中数据库连接池的配置与优化
|
1天前
|
Java 应用服务中间件 API
深入解析Java Servlet技术在Web开发中的应用
深入解析Java Servlet技术在Web开发中的应用
|
1天前
|
前端开发 Java 应用服务中间件
【JavaEE进阶】 初识Spring Web MVC
【JavaEE进阶】 初识Spring Web MVC
|
2天前
|
并行计算 开发者 Python
Python多线程和多进程在Web开发中的应用与挑战
Python多线程和多进程在Web开发中的应用与挑战
|
2天前
|
数据库 开发者 Python
Python在Web开发中的应用:Flask与Django框架介绍与实践
Python在Web开发中的应用:Flask与Django框架介绍与实践
|
4天前
|
负载均衡 JavaScript 应用服务中间件
强大的WEB服务器-Nginx
强大的WEB服务器-Nginx
14 0
|
5天前
|
前端开发 JavaScript Java
从前端到后端:构建现代化Web应用的技术演进
本文将讨论在构建现代化Web应用时涉及的技术演进,并重点关注前端和后端领域的发展。我们将探索各种编程语言(如Java、Python和C),数据库技术以及前沿的前端和后端框架,帮助读者了解如何利用这些工具和技术来构建高效、可扩展和用户友好的Web应用。

相关产品

  • 云迁移中心