一. 问题描述:

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;

https经过ngxin在web服务器收到http请求的更多相关文章

  1. asp.net 问题:Web 服务器上的请求筛选模块被配置为 拒绝包含的查询字符串过长的请求

    发现问题: post请求,在发送一个图片base64编码的字符串时,服务端报这个错误. 报错信息中给出了解决办法: 最可能的原因: Web 服务器上的请求筛选被配置为拒绝该请求,因为查询字符串过长. ...

  2. 图解HTTP权威指南(三)| Web服务器对HTTP请求的处理和响应

    作者简介   李先生(Lemon),高级运维工程师(自称),SRE专家(目标),梦想在35岁买一辆保时捷.喜欢钻研底层技术,认为底层基础才是王道.一切新技术都离不开操作系统(CPU.内存.磁盘).网络 ...

  3. asp.net 开发问题:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值。

    "Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值." 这个问题在开发需要上传文件的时候可能会遇到,今天遇到这个问题,百度过也有挺多的修改方法. 方法1: 修 ...

  4. Ext.ux.UploadDialog上传大文件 HTTP 错误 413.1 - Request Entity Too Large Web 服务器拒绝为请求提供服务,因为该请求实体过大。Web 服务器无法为请求提供服务,因为它正尝试与客户证书进行协商,但请求实体过大。

    问题描述 问题:HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 原因:Web 服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(I ...

  5. 08.Web服务器-4.Web服务器动态资源请求

    1 浏览器请求动态页面过程 2 WSGI 怎么在你刚建立的Web服务器上运行一个Django应用和Flask应用,如何不做任何改变而适应不同的web架构呢? 在以前,选择 Python web 架构会 ...

  6. 一个简单的Web服务器-支持Servlet请求

    上接 一个简单的Web服务器-支持静态资源请求,这个服务器可以处理静态资源的请求,那么如何处理Servlet请求的呢? 判断是否是Servlet请求 首先Web服务器需要判断当前请求是否是Servle ...

  7. 解决前后端分离的“两次请求”引出的Web服务器跨域请求访问问题的解决方案

    在前后端分离的项目中,前端和后端可能是在不同的服务器上,也可以是Docker上,那就意味着前端请求后端Restful接口时,存在跨域情况. 后端在做了通用的跨域资源共享CORS设置后,前端在做ajax ...

  8. 启动调试IIS时,vs无法在 Web 服务器上启动调试。Web 服务器未能找到请求的资源。 有关详细信息,请单击“帮助”。

    问题截图 1.检查 是否设置了本地IIS 2.检查IIS端口是否为80 3.默认网站设置是否正确 可参考,查看网站绑定是否正确

  9. Web服务器禁止range请求

    range: 请求一般是多线程下载的客户端程序使用 在httpd.conf中增加下面的配置,可以禁止range请求: RewriteEngine onRewriteCond %{HTTP:Range} ...

随机推荐

  1. ES6系列_6之新增的数组知识

    1.JSON数组格式转换 JSON的数组格式就是为了前端快速的把JSON转换成数组的一种格式,json数组格式如下: let json = { '0': '男', '1': '女', length:3 ...

  2. Git 知识总结

    版本控制git之一 - 仓库管理 版本控制git之二-分支 git https://mp.weixin.qq.com/s/96FS12DTzbjAJQ1ynRNqdg git init 初始化目录 g ...

  3. Javascript typeof 用法

    在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组. if(document.mylist.length != "undefined" ...

  4. 「小程序JAVA实战」小程序的视频展示页面初始化(63)

    转自:https://idig8.com/2018/09/24/xiaochengxujavashizhanxiaochengxudeshipinzhanshiyemianchushihua62/ 进 ...

  5. JVM知识点精华汇总

    本文是学习了<深入理解Java虚拟机>之后的总结,主要内容都来自于书中,也有作者的一些理解.一是为了梳理知识点,归纳总结,二是为了分享交流,如有错误之处还望指出.(本文以jdk1.7的规范 ...

  6. views中class定义(类的写法)CBV

    from django.views import View class Home(View): def dispatch(self, request, *args, **kwargs): print( ...

  7. 我的Linux之路——windows10用WMware安装CentOS7.5 虚拟机详细步骤

    出自:https://www.jianshu.com/p/99f784d465f4 VMware简介:   VMware是一个虚拟PC的软件,可以在现有的操纵系统上虚拟出一个新的硬件环境,相当于模拟出 ...

  8. ELK Stack 5.2.2 安装文档

    简介: ELK Stack 安装文档,这次都使用最新版本(5.2.2).RPM 包的方式搭建 ELK Stack. 下载地址: https://artifacts.elastic.co/downloa ...

  9. Python操作符重载总结&列表模型

    操作符重载 二元运算符 特殊方法 + __add__,__radd__ - __sub__,__rsub__ * __mul__,__rmul__ / __div__,__rdiv__,__trued ...

  10. Redis高可用及分片集群

    一.主从复制 使用异步复制 一个服务器可以有多个从服务器 从服务器也可以有自己的从服务器 复制功能不会阻塞主服务器 可以通过服务功能来上主服务器免于持久化操作,由从服务器去执行持久化操作即可. 以下是 ...