0

我有 Web 套接字 GET 请求到达 Apache http 服务器并被转发到 Apache Tomcat 8.5.x 服务器(此处表示为 192.168.1.77:80)。

我正在尝试使用 mod_headers 设置“升级”标头值。

在我的 VirtualHost 标记中,我有以下等价物:

<LocationMatch "/somewhere">
   ProxyPass ws://192.168.1.77:80/socket
   RequestHeader set Upgrade "myvalue"
</LocationMatch>

这不像我期望的那样工作。该集似乎适用于 Apache http,但不适用于 Apache Tomcat。

在 Apache http 中,当我将%{Upgrade}i添加到我的 LogFormat 时,我看到“Upgrade”标头设置为“myvalue”。

但是,在Tomcat日志中,如果我添加*%{Upgrade}i",我看到我的RequestHeader设置操作没有生效,并且Tomcat在原始GET请求中记录了“Upgrade”标头的原始值。

注意:我已经尝试像这样添加“早期”参数:

<LocationMatch "/somewhere">
   ProxyPass ws://192.168.1.77:80
   RequestHeader set Upgrade "myvalue" early
</LocationMatch>

关于出了什么问题或我可能遗漏了什么的任何想法?

4

1 回答 1

0

我正在使用 mod_proxy_wstunnel,显然升级标头“WebSocket”在该模块中是硬编码的。

于 2018-02-08T16:57:13.680 回答