- 论坛徽章:
- 36
|
回复 18# 鹰扬影逝
代码中打印这条消息的位置在这里- if ((curproxy->mode == PR_MODE_TCP || curproxy->mode == PR_MODE_HTTP) &&
- (((curproxy->cap & PR_CAP_FE) && !curproxy->timeout.client) ||
- ((curproxy->cap & PR_CAP_BE) && (curproxy->srv) &&
- (!curproxy->timeout.connect ||
- (!curproxy->timeout.server && (curproxy->mode == PR_MODE_HTTP || !curproxy->timeout.tunnel)))))) {
- Warning("config : missing timeouts for %s '%s'.\n"
- " | While not properly invalid, you will certainly encounter various problems\n"
- " | with such a configuration. To fix this, please ensure that all following\n"
- " | timeouts are set to a non-zero value: 'client', 'connect', 'server'.\n",
- proxy_type_str(curproxy), curproxy->id);
- err_code |= ERR_WARN;
- }
复制代码 就我个人的理解,应该是这个意思:
1)对于通常的 TCP 连接的处理,一般都会有 timeout 的设置。否则一个连接长期的不传输数据,还需要占用系统的内存资源等,是一种浪费。所以 HAProxy 对于这种情况给出了 warning。主要是起到提示的作用。
2)设置了这些 timeout 的话,HAproxy 内部就会启动一个 task,来去判断各种超时的逻辑,到期了就关闭连接。
3)如果不设置这些timeout,那么连接的关闭就需要靠其他情况了,比如 client 和 server 主动关闭等。
4)因此,这里只是 warning,执意要这么配置,HAProxy 仍然可以正常启动。
|
|