Http Nginx在请求头中出现#问题

Http Nginx在请求头中出现#问题,http,nginx,Http,Nginx,一些消息总线和Java应用程序将请求头添加到HTTP请求中,其中包含哈希。例如: Vendor-User-Property-#BMC: 1234 NGINX似乎没有将此头与代理传递请求一起传递。我试图重写标题: proxy_set_header Vendor-User-Property-BMC "$http_vendor_user_property_#bmc"; 但不幸的是,这不是一个有效的变量,它只是添加字符串值#bmc 有没有一种方法可以不使用proxy_pass修改地传递这些头,或者有

一些消息总线和Java应用程序将请求头添加到HTTP请求中,其中包含哈希。例如:

Vendor-User-Property-#BMC: 1234
NGINX似乎没有将此头与代理传递请求一起传递。我试图重写标题:

proxy_set_header Vendor-User-Property-BMC "$http_vendor_user_property_#bmc";
但不幸的是,这不是一个有效的变量,它只是添加字符串值
#bmc

有没有一种方法可以不使用proxy_pass修改地传递这些头,或者有没有任何方法可以获取这些头的值

用于测试以下各项的Curl命令:

curl -H "Vendor-User-Property-#BMC: 123" http://domain.tld 

事实证明,nginx中没有真正的解决方案。最后,我在nginx前面放了一个HAProxy,并重写了HTTP头以替换#字符


http请求集标题供应商用户属性BMC%[req.hdr(“供应商用户属性-#BMC”)]

我实际上必须与RFC进行核对,以查看标题名称字段中是否允许使用#。事实证明是的。至于您的实际问题:您是否可以尝试使用
${http\u vendor\u user\u property\u35; bmc}
作为扩展?然后nginx将#识别为注释,并抱怨行没有以分号结尾。好的,最后的努力是:
\\\\
而不是
\
?否,现在标头的值是
\\\\bmc
。谢谢你调查这件事!我还是很想知道。想打开一只虫子吗?