0

我正在使用带有 mod_proxy 的 Apache 2.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: ...

如果客户端直接与 Tomcat 对话,这可以正常工作,但如果它通过反向代理,那么重复的标头似乎会被破坏,并且 Tomcat 最终会收到如下所示的请求:

POST server.com HTTP/1.1
Some-Header: foo
Authorization: BASIC abc123, BASIC abc123
Other-Headers: ...

我使用 Wireshark 检查 HTTP 请求,因为它们在 Client->Proxy->Tomcat 链中发送/接收,而 Apache 绝对是将两个标头“折叠”为一个的组件。

有没有办法以发送两个标头或仅发送一个标头的方式配置此行为?我不希望发生这种“崩溃”......

4

1 回答 1

0

您可以使用 mod_headers 删除重复的标题。有关如何启用它的信息,请参阅他们的官方文档。

然后你可以在你的配置文件中添加这样的一行,这样标题的第一部分就消失了:

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

让我知道这是否适合你。

于 2014-11-23T06:16:56.073 回答