某些消息总线和Java应用程序将请求标头添加到其HTTP请求中,并在其中包含哈希值。例如:
Vendor-User-Property-#BMC: 1234
NGINX似乎没有将此标头与proxy_pass请求一起传递。我试图重写那个标题:
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
答案 0 :(得分:0)
事实证明,nginx中没有真正的解决方案。我最终在nginx前面放了一个HAProxy并重写了HTTP标头来替换#字符。
http-request set-header Vendor-User-Property-BMC %[req.hdr("Vendor-User-Property-#BMC")]