我在AzureRM中有以下设置。
----------
----------- ---------- ----------- |app srv1|
| App | | Varnish| | Load | ---> ----------
| Gateway | --> | Cache | --> | Balancer|
| | | server | | | ---> ----------
----------- ---------- ----------- |app srv2|
----------
我希望默认情况下将所有请求定向到Varnish服务器,但如果Varnish死亡,则将它们直接定向到负载均衡器。
我读到可以在应用网关中使用自定义探针实现故障转移,但是如果我将负载均衡器添加到后端池中,如果我的想法是正确的,我相信它会在Varnish和LB之间进行循环。
使用App Gateway的原因是为了卸载SSL证书。
是否可以使用Azure服务实现此基础架构?
2条答案
按热度按时间noj0wjuj1#
不幸的是,现在还没有一个简单的方法来实现这一点。故障转移池还不支持。您的理解是正确的,如果您将LB添加到后端池,并且它响应健康探测,Gateway将在Varnish和LB之间循环。一种迂回的方法可以是使用另一个默认探测失败的服务器,因此请求不会路由到它。如果主Varnish服务器失败,然后这个服务器应该开始响应200 OK到探测器。2这将需要额外的代码来设置这个辅助服务器,它监视Varnish并相应地响应探测器。
kiz8lqtg2#
(我知道我在战斗后“有点”晚了,但以防万一它可能是别人而不是我^^)
正如@amsriva-msft所说,到目前为止,还不可能使用App Gateway在两个后端池之间进行这种故障转移。
但是在监听器配置中,你可以配置错误页面URL,以便重定向到特定的页面,而不是502错误(这是后端池中所有资源都不可用时返回的代码):App Gateway Listener配置错误页面URL截图
x1c 0d1x你可以把一个DNS指向你的负载均衡器的URL想象成一个502错误页面,而不是一个经典的错误页面。从逻辑上讲,我想这只适用于单页面应用程序作为故障转移,因为每个请求都将被路由到同一个URL。
编辑:以下是MS文档https://learn.microsoft.com/en-us/azure/application-gateway/custom-error中的过程