Nginx请求头丢失的问题解决

 更新时间:2024年12月10日 10:11:54   作者:HainesFreeman  
本文主要介绍了在使用Nginx进行请求转发时,遇到请求头参数丢失的问题,导致的原因可能是api_key_id和api_key_value这2个参数传递过程中丢失或则根本没传递,下面就来具体介绍一下

1.问题

新增的几个 header 参数是这样的:

  • api_key_id
  • api_key_value

我配置有2层nginx转发,从机器A到机器B再到目标服务,遇到一个接口请求需要在header中传递api_key_id和api_key_value这2个参数,但是在EC2机器上直接curl目标服务的api url是可以的,运行的命令:

curl -k -v -X GET 'https://676eea277d90484b8142-cn-heyuan-acdr-1-vpc.alicloudapi.com/v1/accounts/1248622328516666' --header 'api_key_id: 111923335' --header 'api_key_value: f540033e6cc8429f801dc2734ad261ea'

但是通过从机器A到机器B再到目标服务这个链路却不行,这个链路的命令:

curl -k -v -X GET https://baidu.net/dev/tlpssp/uesrapi/v1/accounts/1248622328517708 -H "api_key_id:111923335" -H "api_key_value:f540033e6cc8429f801dc2734ad261ea"

总是返回401,检查了配置location都没有问题,但是目标服务后端打印出来的参数,是没有api_key_id和api_key_value这2个参数的。

猜测:

api_key_id和api_key_value这2个参数传递过程中丢失或则根本没传递

2.解决

于是各种google发现,是nginx配置的问题,终于找到了一个 Nginx 的配置参数:underscores_in_headers,这个参数默认值为:off,即默认忽略带下划线的 header。

最终解决方案:

1、在 http 或者 server 配置中把 underscores_in_headers 配置参数开关打开:

server {
  ...
  underscores_in_headers on;
  ...
}

增加配置后,然后重启 Nginx。

2、使用破折号(-)代替下划线(_),或者统一规范直接不要使用下划线;

一般所见的 headers 确实也都是中杠线,没有下划线。 

本文最终选择的是方案1,也就是增加配置:  underscores_in_headers on;

到此这篇关于Nginx请求头丢失的问题解决的文章就介绍到这了,更多相关Nginx请求头丢失内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Nginx反向代理到go-fastdfs的方法示例

    使用Nginx反向代理到go-fastdfs的方法示例

    这篇文章主要介绍了使用Nginx反向代理到go-fastdfs的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • nginx配置客户端保存cookie的实现

    nginx配置客户端保存cookie的实现

    本文主要介绍了nginx配置客户端保存cookie的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Nginx配置txt、pdf、doc、xls等文件直接下载的方法

    Nginx配置txt、pdf、doc、xls等文件直接下载的方法

    这篇文章主要介绍了Nginx配置txt、pdf、doc、xls等文件直接下载的方法,配置方法很简单,本文直接给出配置示例,需要的朋友可以参考下
    2015-04-04
  • 加速nginx性能: 开启gzip和缓存

    加速nginx性能: 开启gzip和缓存

    nginx 是一个高性能的 Web 服务器,之前也写过一些关于 nginx 的文章。为了提高博客的响应速度,可以从设置 nginx 的 gzip 和缓存这2方面入手。为字体开启 gzip 和缓存能大大减少带宽的消耗
    2017-03-03
  • 全面了解Nginx中的HTTP协议相关模块配置

    全面了解Nginx中的HTTP协议相关模块配置

    HTTP的处理是Nginx服务器的最重要功能,这里我们就带大家来全面了解Nginx中的HTTP协议相关模块配置,需要的朋友可以参考下
    2016-07-07
  • nginx搭建文件服务器的详细过程

    nginx搭建文件服务器的详细过程

    这篇文章主要介绍了nginx搭建文件服务器,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

    Nginx服务器中强制使用缓存的配置及缓存优先级的讲解

    这篇文章主要介绍了Nginx服务器中强制使用缓存的配置及缓存优先级的讲解,一定程度上可以帮助大家解决Nginx不缓存或缓存失效的问题,需要的朋友可以参考下
    2016-01-01
  • Nginx反向代理中出现502错误的解决步骤

    Nginx反向代理中出现502错误的解决步骤

    反向代理是一种服务器代理的方式,它代理了客户端的请求并将请求转发给后端服务器,然后将后端服务器的响应返回给客户端,但经常会遇到502错误,所以本文给大家介绍了Nginx反向代理中出现502错误的解决步骤,需要的朋友可以参考下
    2025-03-03
  • nginx部署vue页面白屏或刷新404问题解决

    nginx部署vue页面白屏或刷新404问题解决

    最近部署vue项目后发现刷新页面会404,本文就来介绍一下nginx部署vue页面白屏或刷新404问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • Nginx配置SSL证书监听443端口

    Nginx配置SSL证书监听443端口

    这篇文章主要为大家详细介绍了Nginx配置SSL证书监听443端口的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论