一. 问题描述:

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;

最新文章

  1. 网站就必须用响应式布局吗?MVC视图展现模式之移动布局
  2. 开启我的Android之旅-----记录Android环境搭建遇到的问题
  3. [CareerCup] 18.1 Add Two Numbers 两数相加
  4. linux下使用ffmpeg将amr转成mp3
  5. 关于 calloc 函数使用 与fun 函数
  6. CSS 样式的优先级
  7. java中的null和""区别
  8. 自定义ContentProvider
  9. 错误 是否保存对以下各项的更改 devenv.sin
  10. Matcher Pattern 正则表达式 示例
  11. Linux入门 (笔记)
  12. VS2015+MySql EF的配置问题
  13. [SignalR]注册路由
  14. CSS学习笔记之元素分类
  15. 2017-2018-1 20155306 mypwd的实现
  16. FEX(Fabric Extender)
  17. java的http请求实例
  18. 工控随笔_04_西门子_解决Step 7软件因授权问题不能打开的方式和方法
  19. Python Day 9
  20. linux命令之netstat

热门文章

  1. Haartraining 训练方法(这个样例真有用,能行)
  2. Struts2 学习记录-1--Struts2中的配置文件
  3. 在mybatis中模糊查询有三种写法
  4. sql的预编译问题
  5. S 导客户主数据 及更新销售团队、组织、品牌
  6. 服务级别协议(SLA)与运行水平协议(OLA)
  7. leetcode: Longest Valid Parentheses分析和实现
  8. Android Activity简介和自定义视图
  9. 如何去掉UItableview headerview黏性
  10. Java开发环境之------MyEclipse快捷键和排除错误第一选择ctrl+1(***重点***:ctrl+1,快速修复---有点像vs中的快速using