haproxy:如果 <condition> 则设置超时
haproxy: set timeout if <condition>
这个问题看起来很简单,但是我一直没能找到合适的答案。
在 haproxy 中我有 1 个后端,比如:
- 后端-1
和 2 个前端,比如:
- 前端 1
- 前端 2
在后端节中,我想设置一个 "timeout server" 参数,但是,前提是连接来自 frontend-1。
因为我没有找到任何东西,所以我试图自己弄明白:
backend backend-1
bind *:80
option <blahblah_option>
timeout server 1d if frontend frontend-1
此语法无效,我提到它是为了让您了解我正在努力实现的目标。
这在 HAProxy 中尚不可行。
稍后,您将能够使用 tcp-request 和 http-request 规则设置超时。
我们现在通常做的是解决这个问题,我们使用相同的参数设置 2 个后端,但超时服务器不同。
当一些 url 只需要很长的服务器超时时,这很有用。
编辑跟进您关于多项健康检查的评论:
嗯,这就是服务器的 'track' 指令存在的原因:
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后端的服务器不会被检查。也就是说,它会在后端跟进与 srv1 相同的状态 my_app.
巴蒂斯特
巴蒂斯特
我是这样做的并且成功了。它可以延长特定应用程序 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
这个问题看起来很简单,但是我一直没能找到合适的答案。
在 haproxy 中我有 1 个后端,比如:
- 后端-1
和 2 个前端,比如:
- 前端 1
- 前端 2
在后端节中,我想设置一个 "timeout server" 参数,但是,前提是连接来自 frontend-1。
因为我没有找到任何东西,所以我试图自己弄明白:
backend backend-1
bind *:80
option <blahblah_option>
timeout server 1d if frontend frontend-1
此语法无效,我提到它是为了让您了解我正在努力实现的目标。
这在 HAProxy 中尚不可行。 稍后,您将能够使用 tcp-request 和 http-request 规则设置超时。
我们现在通常做的是解决这个问题,我们使用相同的参数设置 2 个后端,但超时服务器不同。 当一些 url 只需要很长的服务器超时时,这很有用。
编辑跟进您关于多项健康检查的评论: 嗯,这就是服务器的 'track' 指令存在的原因:
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后端的服务器不会被检查。也就是说,它会在后端跟进与 srv1 相同的状态 my_app.
巴蒂斯特
巴蒂斯特
我是这样做的并且成功了。它可以延长特定应用程序 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