- 論壇徽章:
- 36
|
回復(fù) 18# 鷹揚(yáng)影逝
代碼中打印這條消息的位置在這里- 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;
- }
復(fù)制代碼 就我個(gè)人的理解,應(yīng)該是這個(gè)意思:
1)對于通常的 TCP 連接的處理,一般都會(huì)有 timeout 的設(shè)置。否則一個(gè)連接長期的不傳輸數(shù)據(jù),還需要占用系統(tǒng)的內(nèi)存資源等,是一種浪費(fèi)。所以 HAProxy 對于這種情況給出了 warning。主要是起到提示的作用。
2)設(shè)置了這些 timeout 的話,HAproxy 內(nèi)部就會(huì)啟動(dòng)一個(gè) task,來去判斷各種超時(shí)的邏輯,到期了就關(guān)閉連接。
3)如果不設(shè)置這些timeout,那么連接的關(guān)閉就需要靠其他情況了,比如 client 和 server 主動(dòng)關(guān)閉等。
4)因此,這里只是 warning,執(zhí)意要這么配置,HAProxy 仍然可以正常啟動(dòng)。
|
|