健康检查请求中未设置 SNI 扩展 (Apache v.2.4.35)
SNI extension not set in healthcheck requests (Apache v.2.4.35)
我遇到了一个问题,即 SNI 扩展没有在使用 TLS 加密的后端的健康检查请求上设置。由于健康检查是否定的,这导致普通请求也被拒绝。
Apache 版本 2.4.35
在后端服务器上我有以下错误:
AH02033: No hostname was provided via SNI for a name based virtual host
我也用wireshark查过了,肯定是没有设置扩展。
我的配置如下:
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 中的错误?
在此先感谢 help/ideas!
问题已通过官方错误报告中提供的补丁解决:
我遇到了一个问题,即 SNI 扩展没有在使用 TLS 加密的后端的健康检查请求上设置。由于健康检查是否定的,这导致普通请求也被拒绝。
Apache 版本 2.4.35
在后端服务器上我有以下错误:
AH02033: No hostname was provided via SNI for a name based virtual host
我也用wireshark查过了,肯定是没有设置扩展。
我的配置如下:
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 中的错误? 在此先感谢 help/ideas!
问题已通过官方错误报告中提供的补丁解决: