我遇到的问题是,未在使用TLS加密的后端健康检查请求上设置SNI扩展。由于健康检查为阴性,因此导致普通请求也被拒绝。
Apache 2.4.35版
在后端服务器上,我出现以下错误:
AH02033: No hostname was provided via SNI for a name based virtual host
我也已经用Wireshk进行了调查,但绝对没有设置该退出方式。
我的配置如下:
Listen 127.0.0.1:443
ServerName www.localhost.com
<VirtualHost 127.0.0.1:443>
ServerName www.localhost.com
ServerAlias localhost.com
SSLCertificateFile /etc/httpd/ssl/ca.crt
SSLCertificateKeyFile /etc/httpd/ssl/ca.key
SSLEngine on
SSLProxyEngine on
ProxyHCExpr isok {%{REQUEST_STATUS} =~ /^[23]/}
ProxyHCTemplate template hcinterval=5 hcexpr=isok hcmethod=get hcuri=/healthcheck.php
<Proxy balancer://mycluster lbmethod=byrequests>
BalancerMember https://127.0.0.1:8443
BalancerMember https://127.0.0.1:8444
ProxyPreserveHost On
SSLProxyProtocol TLSv1
</Proxy>
<Location />
ProxyPass balancer://mycluster/
ProxyPassReverse balancer://mycluster/
</Location>
</VirtualHost>
我已阅读到ProxyPreserveHost应该处于“ on”状态,但这不能解决问题。 我是否缺少某些东西,或者这最终是否是mod_proxy_hcheck中的错误? 在此先感谢您的帮助/想法!