一次生产上由于Nginx引起的HTTP请求Header参数丢失的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一次生产上由于Nginx引起的HTTP请求Header参数丢失的问题相关的知识,希望对你有一定的参考价值。

参考技术A

在一个第三方SSO的对接环境中,服务端需要拿到当前前端的URL进行重定向,此时出于安全方面的考量,研发组决定把重定向的URL放到HTTP请求中的 Header 进行传参,参数的名称为 redirect_url ,在测试环境跑的时候非常通畅,但是生产环境获取这个 redirect_url 进行 URLEncoder.encode() 操作的时候,出现了 NPE 异常.

在开发环境的时候,由于前端使用node.js进行代理端口,所以并没有什么问题,但是由于生产环境使用的是 Nginx 进行静态资源压缩,所以html页面发起的HTTP请求都是被nginx所转发的,经过查阅资料发现,Nginx配置的 underscores_in_headers 项自动过滤了Header头部的下划线的参数。

以上是关于一次生产上由于Nginx引起的HTTP请求Header参数丢失的问题的主要内容,如果未能解决你的问题,请参考以下文章

nginx http 400 错误的请求怎么解决

记一次HTTP POST请求变成GET请求

django nginx 在生产中通过 http 获取 csrf 验证错误

自定义请求头引起预检请求

nginx 请求限制和访问控制

一次nginx 502问题排查和解决