Nginx代理时头头中带“_"信息丢失怎么办

  介绍

这篇文章给大家分享的是有关Nginx代理时头头中带“_"信息丢失怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强>前言

开发网关项目时,在请求时往请求头头中放入了签名sign_key信息,在接收请求时再从标题中拿的出,在本地调试时是可以的,但上线之后通过Nginx代理之后发现拿不到。

的位置/,{   ,proxy_set_header  X-Real-IP  remote_addr美元;   ,proxy_set_header  X-Forwarded-For  proxy_add_x_forwarded_for美元;   ,proxy_set_header  Host  http_host美元;   ,proxy_set_header  X-Nginx-Proxy 真实;      ,add_header  Proxy-Node  upstream_addr美元;   ,add_header  Proxy-Status  upstream_status;美元,   ,   ,proxy_http_version  1.1;   ,proxy_pass  http://tianusa;   以前,}

后来找到原因是因为Nginx对头有所限制,下划线(_)不支持

<强>解决方法:

1。不用下划线

把下划线_改成其他的,如sign_key改成sign-key

2。从根本解除Nginx的限制

Nginx默认请求的头的那么中包含& # 39;_ # 39;时,会自动忽略掉。

解决方法是:在Nginx里的Nginx。参看配置文件中的http部分中添加如下配置:

underscores_in_headers ,,(默认,underscores_in_headers 为)

Nginx代理时头头中带“_"信息丢失怎么办