Apache 从HTTP请求中删除重复的头

Apache 从HTTP请求中删除重复的头,apache,mod-rewrite,reverse-proxy,mod-proxy,mod-headers,Apache,Mod Rewrite,Reverse Proxy,Mod Proxy,Mod Headers,我使用带有mod_代理的Apache2.4服务器作为Tomcat服务器的HTTP反向代理。反向代理在拆分DNS配置上工作,其中“server.com”可能指向实际的HTTP服务器或我的反向代理,具体取决于客户端所在的位置 我遇到的问题是,我们的客户机应用程序有时会不止一次地包含头。例如,HTTP请求可能会以如下方式结束: POST server.com HTTP/1.1 Some-Header: foo Authorization: BASIC abc123 Authorization: BAS

我使用带有mod_代理的Apache2.4服务器作为Tomcat服务器的HTTP反向代理。反向代理在拆分DNS配置上工作,其中“server.com”可能指向实际的HTTP服务器或我的反向代理,具体取决于客户端所在的位置

我遇到的问题是,我们的客户机应用程序有时会不止一次地包含头。例如,HTTP请求可能会以如下方式结束:

POST server.com HTTP/1.1
Some-Header: foo
Authorization: BASIC abc123
Authorization: BASIC abc123
Other-Headers: ...
POST server.com HTTP/1.1
Some-Header: foo
Authorization: BASIC abc123, BASIC abc123
Other-Headers: ...
如果客户机直接与Tomcat对话,则此操作正常,但如果它通过反向代理,则复制的头文件似乎会被破坏,Tomcat最终会收到如下请求:

POST server.com HTTP/1.1
Some-Header: foo
Authorization: BASIC abc123
Authorization: BASIC abc123
Other-Headers: ...
POST server.com HTTP/1.1
Some-Header: foo
Authorization: BASIC abc123, BASIC abc123
Other-Headers: ...
我使用Wireshark在客户端->代理->Tomcat链中发送/接收HTTP请求时检查它们,Apache无疑是将两个头“折叠”为一个头的组件


是否有一种方法可以配置此行为,使其同时发送两个头或仅发送一个头?我不希望出现这种“崩溃”情况…

您可以使用mod_头删除重复的头。有关如何启用此功能的信息,请参阅他们的

然后,您可以在配置文件中添加这样一行,以便头的第一部分消失:

RequestHeader edit Authorization "^BASIC\ abc123\\,\ " ""

让我知道这是否适合您。

您可能可以使用mod_头删除第二个头。。。你检查过他们的文档了吗?我启用了mod_头并将该行添加到虚拟主机配置文件中,但我不知道应该使用什么来代替“abc123”。另外,如果客户端只发送一个头而不是两个头,这不会中断吗。行是
RequestHeader编辑授权“^BASIC\[a-zA-Z0-9]+\,\”
,因为它是Base64编码的。它也适用于格式良好的请求。谢谢