haproxy:如果<condition>设置超时

时间:2015-08-12 18:04:15

标签: haproxy

问题似乎很简单,但我找不到合适的答案。

在haproxy中我有1个后端,说:

  • 后端-1

和2个前端,说:

  • 前端-1
  • 前端-2

在后端节中,我想设置一个“超时服务器”参数,但是,仅当连接来自前端-1时。

由于我没有找到任何东西,我试图弄清楚自己:

backend backend-1
    bind *:80
    option <blahblah_option>
    timeout server 1d if frontend frontend-1

这种语法不起作用,我提到它是为了让我理解我想要实现的目标。

2 个答案:

答案 0 :(得分:2)

在HAProxy中这是不可行的。 稍后,您将能够使用tcp-request和http-request规则设置超时。

我们现在通常要解决的问题是,我们使用相同的参数设置2个后端,但是不同的超时服务器。 当一些网址只需要很长的服务器超时时,这很有用。

编辑后续关于多项健康检查的评论: 嗯,这就是为什么服务器跟踪&#39;指令存在:

backend my_app
 server srv1 10.0.0.1:80 check

backend my_app_longtime
 server srv1 10.0.0.1:80 track my_app/srv1

在上面的配置中,my_app_longtime后端的服务器不会被检查。也就是说,它会跟后端my_app中的srv1跟进相同的状态。

巴普蒂斯特

巴普蒂斯特

答案 1 :(得分:0)

我是这样做的并且有效。它使得可以在特定的应用程序URL上延长超时,这更耗时。用于跟踪健康检查 - 感谢Babtiste。

frontend www-http
    bind 10.0.0.1:80
    default_backend app

    acl long_url  path_beg -i /long_url

    use_backend app-extended if long_url

backend app
    server web-1 10.0.0.2:80 check

backend app-extended
    server web-1 10.0.0.2:80 trace app/web-1
    timeout server 10m