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

5
我们目前正在将反向代理解决方案介于互联网和应用服务器之间。我已经完成了简单的反向代理设置,并且可以成功地从反向代理连接到应用服务器。但是当我尝试从F5向反向代理执行健康检查时,它会失败,并且错误日志中没有错误,除了在访问日志中出现以下内容: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 "-" "-".
2个回答

24

与其使用 HTTP 方法(这是 HTTP 客户端将发送的第一件事),你会收到以 \x16 开头的字符串,这是 TLS 握手的开始。

这意味着你的客户端试图使用 HTTPS 与 HTTP 服务器通信。仅在端口 443 上启动服务器并不等同于使用 HTTPS。确认这一点的快速方法可能是将如 https://foo 的 URL 更改为 http://foo:443


那非常有道理!我会与我的IT人员核实是否必须加密,但如果不需要加密,那么我还能使用端口443吗?或者推荐改用80? - vasppla
切换到80端口是最不令人惊讶的事情。如果你在443端口运行,我会期望看到一个HTTPS服务器,而不是HTTP服务器。 - Evert
好的,谢谢!如果需要加密,那么我需要在 F5 和 Apache 之间启用 SSL 握手。 - vasppla
如果您能指向一个最好的链接,帮助我设置启用SSL的Apache,那就太好了。 - vasppla
@vsellapp,我不提供免费咨询,但我很乐意在这里回答问题。如果您有更多问题,请开启更多的stackoverflow问题。 - Evert
显示剩余3条评论

2
我有同样的问题,“\ x16 \ x03 \ x01” 400 226“-”“ - ”。 我的错误在于我的DNAT防火墙。我抓到了80和443端口上的通信,但只将其DNAT到IP:80。这条规则将所有http和https流量重定向到TCP / 80。这就是为什么请求“\ x16 ..”被记录在日志中的原因。也许我的经验会帮助到某些人 :-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接