Apache 请求 header 缺少主机:,需要处理请求

Apache request header missing Host:, need to process request

我有几台设备,上面有一个微型 http 客户端。我们用我的自定义网络服务器测试了它们,一切都很好。现在我想迁移到 apache 作为我的网络服务器,我的请求正在关闭:

客户端发送 HTTP/1.1 没有主机名的请求(参见 RFC2616 第 14.23 节)

我知道发生此错误是因为我在 header 中缺少 "Host: www.blah.com" 条目。它是 HTTP 1.1 规范所必需的

RFC2616 第 14.23 节 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

问题是我无法更改硬件上的固件,所以 http 客户端就是这样。如果我事先熟悉这个要求,我就会实施它。我的问题是:

如何配置 apache(我认为是 authz_host 模块)以允许没有 Host: 条目的请求 header?

直接的回答是我不认为你可以让 apache 忽略协议。你的客户坏了。然而,跳出框框思考一下,如果一切都失败了,也许你可以在 python 中编写一个小的 http 代理,它只会修复你的 http 请求并将它们发送到正确的主机并告诉你的客户使用代理。