Apache httpd 服务器不接受来自 F5 负载均衡器的 GET HTTP 请求

Apache httpd server doesn't accept GET HTTP request from F5 load balancer

我们目前正在互联网和应用服务器之间引入反向代理解决方案。我已经完成了简单的反向代理设置,并且能够成功地从反向代理到达应用程序服务器。但是当我尝试从 F5 执行健康检查到反向代理时,它失败了并且 error_log 中没有错误,除了 access_log

中的以下错误 XX.XXX.XX.X - - [07/Feb/2020:15:33:27 -0700] "\x16\x03\x01" 400 226 "-" "-"
XX.XXX.XX.X - - [07/Feb/2020:15:33:28 -0700] "\x16\x03\x01\x02" 400 226 "-" "-"
XX.XXX.XX.X - - [07/Feb/2020:15:33:32 -0700] "\x16\x03\x01\x02" 400 226 "-" "-"
XX.XXX.XX.X - - [07/Feb/2020:15:33:33 -0700] “\x16\x03\x01” 400 226 “-” “-”
XX.XXX.XX.X - - [07/Feb/2020:15:33:37 -0700] “\x16\x03\x01” 400 226 “-” “-”
XX.XXX.XX.X - - [07/Feb/2020:15:33:38 -0700] "\x16\x03\x01\x02" 400 226 "-" "-"
XX.XXX.XX.X - - [07/Feb/2020:15:33:42 -0700] "\x16\x03\x01\x02" 400 226 "-" "-"
XX.XXX.XX.X - - [07/Feb/2020:15:33:43 -0700] "\x16\x03\x01" 400 226 "-" "-"
XX.XXX.XX.X - - [07/Feb/2020:15:33:47 -0700] “\x16\x03\x01” 400 226 “-” “-”
XX.XXX.XX.X - - [07/Feb/2020:15:33:48 -0700] "\x16\x03\x01\x02" 400 226 "-" "-"
XX.XXX.XX.X - - [07/Feb/2020:15:33:52 -0700] "\x16\x03\x01\x02" 400 226 "-" "-"
XX.XXX.XX.X - - [07/Feb/2020:15:33:53 -0700] "\x16\x03\x01" 400 226 "-" "-"

您得到的不是 HTTP 方法(这是 HTTP 客户端发送的第一件事),而是以 \x16 开头的字符串,这是 TLS 握手的开始。

这意味着您的客户端正在尝试使用 HTTPS 与 HTTP 服务器通信。仅在端口 443 上启动服务器并不能使其成为 HTTPS。确认这一点的快速方法可能是将 url 例如 https://foo 更改为 http://foo:443

我有同样的问题 "\x16\x03\x01" 400 226 "-" "-"。 我的错误在于我的 DNAT 防火墙。我在 80 和 443 上都发现了通信,DNAT 仅与 IP:80 通信。此规则将所有流量从 http 和 https 重定向到 TCP / 80。这就是请求“\ x16 ..”被记录在日志中的原因。也许我的经验会对某人有所帮助:-)