我正在尝试为LoadBalancers上的运行状况检查设置SSL设置。 根据{{3}},SSLProxy *-指令应在Proxy-部分内运行。因此,我想做的是以下操作(我忽略了不重要的配置内容):
<VHost ...>
SSLProxyEngine on
<Proxy balancer://mybalancer>
SSLProxyProtocol [a protocol]
SSLProxyCipherSuite [a cipher suite]
BalancerMember https://www.backend1.com hcinterval=1 hcmethod=get hcuri=/healthcheck1.php
BalancerMember https://www.backend2.com hcinterval=1 hcmethod=get hcuri=/healthcheck2.php
</Proxy>
</VHost>
像这样的SSLProxyProtocol和SSLProxyCipherSuite对健康检查没有影响,但对正常请求没有影响。
如果我将指令提升到VHost级别,则会使用正确的设置执行运行状况检查:
<VHost ...>
SSLProxyEngine on
SSLProxyProtocol [a protocol]
SSLProxyCipherSuite [a cipher suite]
<Proxy balancer://mybalancer>
BalancerMember https://www.backend1.com hcinterval=1 hcmethod=get hcuri=/healthcheck1.php
BalancerMember https://www.backend2.com hcinterval=1 hcmethod=get hcuri=/healthcheck2.php
</Proxy>
</VHost>
但是我需要的是针对不同LoadBalancers的不同SSL / TLS设置。 我正在使用Apache 2.4.33版。
我想知道是否有人遇到相同的问题,或者有人是否能够成功设置这样的配置?
答案 0 :(得分:0)
感谢Yann和Armin在此方面的帮助。它可以与此错误报告中提供的补丁一起使用:
https://bz.apache.org/bugzilla/show_bug.cgi?id=62556#c6
(您只需要附件36043,其他补丁是错误的/不需要的!)
如此处所讨论的,问题是平衡器成员的worker没有正确初始化。这就是为什么我们必须至少设置一个代理参数的原因。如果我们像下面那样扩展上面的Proxy balancer://定义,它将起作用:(当然,在补丁之后):
<Proxy balancer://mybalancer2 lbmethod=byrequests>
我们可以在此处采用任何lb参数,并且可以轻松将其设置为默认值。 (lbmethod = byrequests是默认设置,因此,除非正确初始化了worker,否则什么都不会改变。)
上面的完整的有效示例:
<VHost ...>
SSLProxyEngine on
ProxyPass "/" "balancer://mybalancer"
ProxyPass "/2" "balancer://mybalancer2"
<Proxy balancer://mybalancer lbmethod=byrequests>
SSLProxyProtocol [a protocol]
SSLProxyCipherSuite [a cipher suite]
BalancerMember https://www.backend1.com hcinterval=1 hcmethod=get hcuri=/healthcheck1.php
BalancerMember https://www.backend2.com hcinterval=1 hcmethod=get hcuri=/healthcheck2.php
</Proxy>
<Proxy balancer://mybalancer2 lbmethod=byrequests>
SSLProxyProtocol [another protocol]
SSLProxyCipherSuite [another cipher suite]
BalancerMember https://www.backend3.com hcinterval=1 hcmethod=get hcuri=/healthcheck1.php
BalancerMember https://www.backend4.com hcinterval=1 hcmethod=get hcuri=/healthcheck2.php
</Proxy>
</VHost>
该修补程序应包含在下一个版本中,可能约为2.4.35