我有一个极端的情况,HaProxy 后面的一些应用程序服务器如果运行旧版本的代码,则会针对某些请求返回 500 个代码。通常,这种情况仅在整个集群正在进行升级时才会发生,但如果部署部分失败也可能发生。同一池中的另一个应用程序服务器很可能能够为该请求提供服务。
我想知道 HAProxy 是否可以检测到后端服务器针对特定请求回复了 500 错误(不使用健康检查),然后在另一台服务器上重试。有点像Option redispatch
错误而不是 http 超时。
看起来 http 请求只会发送到客户端浏览器,而不会返回到 Haproxy,但我想我应该问问并看看是否有人解决了这个问题,甚至可能使用 WAF 或双向代理。
小智 4
在 HAProxy 版本 >2.0 上是:添加retry-on all-retryable-errors
到相关后端。
但要小心(POST 请求可能会重试,导致重复的数据库操作);请参阅https://www.haproxy.com/blog/haproxy-layer-7-retries-and-chaos-engineering/
归档时间: |
|
查看次数: |
4090 次 |
最近记录: |