https经过ngxin在web服务器收到http请求
2024-09-26 16:39:16
一. 问题描述:
nginx代理nexus的时候页面不全,部分https地址自动转成http了,使用方案四解决的
浏览器输入https://www.mysite.com,后台通过request.getScheme()获取到的确实http而不是https,通过request.getRequestURL()拿到的也是http://www.mysite.com
分析原因:因为nginx+tomcat部署web服务,tomcat接受到的请求都是来自于nginx的http请求。浏览器请求https是外网域名或者ip,在浏览器发出请求时经过nginx代理拦截会进行证书验证,验证通过后nginx把外网请求转发到内网服务器,一般都是http请求,因为https证书只针对外网ip,内网服务无法配置ssl证书,而且如果转发到web服务器也是https请求,那么每个web服务都需要配置ssl证书。
二. 解决办法:
方案一:修改服务端,支持https请求,nginx的配置改为proxy_pass https://xrk_biz_web2_8013;
方案二:在nginx端强制重定向http到https。
方案三:修改服务端逻辑代码(配置文件中主机访问地址及redirect补全主机地址),保证相关回调链接都是https开头。
方案四:使用spring-boot官方提供的解决方案,nginx添加配置(最终采用):
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
最新文章
- 网站就必须用响应式布局吗?MVC视图展现模式之移动布局
- 开启我的Android之旅-----记录Android环境搭建遇到的问题
- [CareerCup] 18.1 Add Two Numbers 两数相加
- linux下使用ffmpeg将amr转成mp3
- 关于 calloc 函数使用 与fun 函数
- CSS 样式的优先级
- java中的null和";";区别
- 自定义ContentProvider
- 错误 是否保存对以下各项的更改 devenv.sin
- Matcher Pattern 正则表达式 示例
- Linux入门 (笔记)
- VS2015+MySql EF的配置问题
- [SignalR]注册路由
- CSS学习笔记之元素分类
- 2017-2018-1 20155306 mypwd的实现
- FEX(Fabric Extender)
- java的http请求实例
- 工控随笔_04_西门子_解决Step 7软件因授权问题不能打开的方式和方法
- Python Day 9
- linux命令之netstat
热门文章
- Haartraining 训练方法(这个样例真有用,能行)
- Struts2 学习记录-1--Struts2中的配置文件
- 在mybatis中模糊查询有三种写法
- sql的预编译问题
- S 导客户主数据 及更新销售团队、组织、品牌
- 服务级别协议(SLA)与运行水平协议(OLA)
- leetcode: Longest Valid Parentheses分析和实现
- Android Activity简介和自定义视图
- 如何去掉UItableview headerview黏性
- Java开发环境之------MyEclipse快捷键和排除错误第一选择ctrl+1(***重点***:ctrl+1,快速修复---有点像vs中的快速using