SignalR 反向代理服务器 apache错误 400 – 错误请求 – 主机名无效

问题描述

我们面临这个问题:我们有一个用 C# 编写并使用 .Net 4.7 的自托管应用程序,它运行一个 signalR 服务器,以及一个用 JavaScript (2.1) 编写的 signalR 客户端,托管在一个 web 应用程序中,运行在 IIS 下。

有一个负载均衡器 (apache) 可以在客户端和服务器之间重定向请求。

客户端请求是跨域请求,因为web应用域和signalR服务器域不同。

如果signalR客户端使用signalR服务器域向服务器发送请求,则该请求成功。另一方面,如果客户端使用 Web 应用程序域向服务器发送请求,此请求会通过负载均衡器,客户端会收到以下错误消息:

“400 – 错误请求 – 无效主机名”

我们已经使用wireshark来嗅探客户端和服务器之间交换的数据包,当客户端发出跨域请求时,我们注意到apache服务器在客户端请求中添加了以下标头:

x-forwarded-for:

x-forwarded-host

x-转发服务器

如果 x-forwarded-host e x-forwarded-server 值似乎是正确的(它们包含 Web 应用程序域),则 x-forwarded-for 标头包含未转发请求的主机的 IP 地址列表正确的方法,因为signalR服务器ip地址不同,不包含在这个字段中。

我们想知道是否有办法通过signalR客户端或signalR服务器的代码来指定一些可以让我们解决这个问题的东西。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)