MINOR: check define check-reuse-pool server keyword
Define a new server keyword check-reuse-pool, and its counterpart with a "no" prefix. For the moment, only parsing is implemented. The real behavior adjustment will be implemented in the next patch.
This commit is contained in:
parent
20eb57b486
commit
e34f748e3a
@ -18203,6 +18203,22 @@ check
|
|||||||
tcp-check connect
|
tcp-check connect
|
||||||
server s1 192.168.0.1:443 ssl check
|
server s1 192.168.0.1:443 ssl check
|
||||||
|
|
||||||
|
check-reuse-pool
|
||||||
|
May be used in the following contexts: tcp, http
|
||||||
|
|
||||||
|
This option permits checks to reuse idle connections if available instead of
|
||||||
|
opening a dedicated one. The connection is reinserted in the pool on check
|
||||||
|
completion. The main objective is to limit the number of connections opening
|
||||||
|
and closure on a specific server.
|
||||||
|
|
||||||
|
Note that for configuration simplicity, this option is silently ignored if
|
||||||
|
any specific check connect option is defined, either on the server line or
|
||||||
|
via a custom tcp-check connect rule.
|
||||||
|
|
||||||
|
If checks are activated for a reverse HTTP server, this option is mandatory
|
||||||
|
for checks to succeed, as by definition these servers do not have the ability
|
||||||
|
to initiate connection.
|
||||||
|
|
||||||
check-send-proxy
|
check-send-proxy
|
||||||
May be used in the following contexts: tcp, http
|
May be used in the following contexts: tcp, http
|
||||||
|
|
||||||
@ -18702,6 +18718,12 @@ no-check
|
|||||||
It may also be used as "default-server" setting to reset any previous
|
It may also be used as "default-server" setting to reset any previous
|
||||||
"default-server" "check" setting.
|
"default-server" "check" setting.
|
||||||
|
|
||||||
|
no-check-reuse-pool
|
||||||
|
May be used in the following contexts: tcp, http
|
||||||
|
|
||||||
|
This option reverts any previous "check-reuse-pool" possibly inherited from a
|
||||||
|
"default-server". Any checks will be conducted on its dedicated connection.
|
||||||
|
|
||||||
no-check-ssl
|
no-check-ssl
|
||||||
May be used in the following contexts: tcp, http, log
|
May be used in the following contexts: tcp, http, log
|
||||||
|
|
||||||
|
@ -172,6 +172,7 @@ struct check {
|
|||||||
char desc[HCHK_DESC_LEN]; /* health check description */
|
char desc[HCHK_DESC_LEN]; /* health check description */
|
||||||
signed char use_ssl; /* use SSL for health checks (1: on, 0: server mode, -1: off) */
|
signed char use_ssl; /* use SSL for health checks (1: on, 0: server mode, -1: off) */
|
||||||
int send_proxy; /* send a PROXY protocol header with checks */
|
int send_proxy; /* send a PROXY protocol header with checks */
|
||||||
|
int reuse_pool; /* try to reuse idle connections */
|
||||||
struct tcpcheck_rules *tcpcheck_rules; /* tcp-check send / expect rules */
|
struct tcpcheck_rules *tcpcheck_rules; /* tcp-check send / expect rules */
|
||||||
struct tcpcheck_rule *current_step; /* current step when using tcpcheck */
|
struct tcpcheck_rule *current_step; /* current step when using tcpcheck */
|
||||||
int inter, fastinter, downinter; /* checks: time in milliseconds */
|
int inter, fastinter, downinter; /* checks: time in milliseconds */
|
||||||
|
20
src/check.c
20
src/check.c
@ -2345,6 +2345,15 @@ static int srv_parse_no_check(char **args, int *cur_arg, struct proxy *curpx, st
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Parse the "no-check-reuse-pool" server keyword */
|
||||||
|
static int srv_parse_no_check_reuse_pool(char **args, int *cur_arg,
|
||||||
|
struct proxy *curpx, struct server *srv,
|
||||||
|
char **errmsg)
|
||||||
|
{
|
||||||
|
srv->check.reuse_pool = 0;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* Parse the "no-check-send-proxy" server keyword */
|
/* Parse the "no-check-send-proxy" server keyword */
|
||||||
static int srv_parse_no_check_send_proxy(char **args, int *cur_arg, struct proxy *curpx, struct server *srv,
|
static int srv_parse_no_check_send_proxy(char **args, int *cur_arg, struct proxy *curpx, struct server *srv,
|
||||||
char **errmsg)
|
char **errmsg)
|
||||||
@ -2377,6 +2386,15 @@ static int srv_parse_check_proto(char **args, int *cur_arg,
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Parse the "check-reuse-pool" server keyword */
|
||||||
|
static int srv_parse_check_reuse_pool(char **args, int *cur_arg,
|
||||||
|
struct proxy *curpx, struct server *srv,
|
||||||
|
char **errmsg)
|
||||||
|
{
|
||||||
|
srv->check.reuse_pool = 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Parse the "rise" server keyword */
|
/* Parse the "rise" server keyword */
|
||||||
static int srv_parse_check_rise(char **args, int *cur_arg, struct proxy *curpx, struct server *srv,
|
static int srv_parse_check_rise(char **args, int *cur_arg, struct proxy *curpx, struct server *srv,
|
||||||
@ -2645,10 +2663,12 @@ static struct srv_kw_list srv_kws = { "CHK", { }, {
|
|||||||
{ "agent-send", srv_parse_agent_send, 1, 1, 1 }, /* Set string to send to agent. */
|
{ "agent-send", srv_parse_agent_send, 1, 1, 1 }, /* Set string to send to agent. */
|
||||||
{ "check", srv_parse_check, 0, 1, 1 }, /* Enable health checks */
|
{ "check", srv_parse_check, 0, 1, 1 }, /* Enable health checks */
|
||||||
{ "check-proto", srv_parse_check_proto, 1, 1, 1 }, /* Set the mux protocol for health checks */
|
{ "check-proto", srv_parse_check_proto, 1, 1, 1 }, /* Set the mux protocol for health checks */
|
||||||
|
{ "check-reuse-pool", srv_parse_check_reuse_pool, 0, 1, 1 }, /* Allows to reuse idle connections for checks */
|
||||||
{ "check-send-proxy", srv_parse_check_send_proxy, 0, 1, 1 }, /* Enable PROXY protocol for health checks */
|
{ "check-send-proxy", srv_parse_check_send_proxy, 0, 1, 1 }, /* Enable PROXY protocol for health checks */
|
||||||
{ "check-via-socks4", srv_parse_check_via_socks4, 0, 1, 1 }, /* Enable socks4 proxy for health checks */
|
{ "check-via-socks4", srv_parse_check_via_socks4, 0, 1, 1 }, /* Enable socks4 proxy for health checks */
|
||||||
{ "no-agent-check", srv_parse_no_agent_check, 0, 1, 0 }, /* Do not enable any auxiliary agent check */
|
{ "no-agent-check", srv_parse_no_agent_check, 0, 1, 0 }, /* Do not enable any auxiliary agent check */
|
||||||
{ "no-check", srv_parse_no_check, 0, 1, 0 }, /* Disable health checks */
|
{ "no-check", srv_parse_no_check, 0, 1, 0 }, /* Disable health checks */
|
||||||
|
{ "no-check-reuse-pool", srv_parse_no_check_reuse_pool, 0, 1, 0 }, /* Disable PROXY protocol for health checks */
|
||||||
{ "no-check-send-proxy", srv_parse_no_check_send_proxy, 0, 1, 0 }, /* Disable PROXY protocol for health checks */
|
{ "no-check-send-proxy", srv_parse_no_check_send_proxy, 0, 1, 0 }, /* Disable PROXY protocol for health checks */
|
||||||
{ "rise", srv_parse_check_rise, 1, 1, 1 }, /* Set rise value for health checks */
|
{ "rise", srv_parse_check_rise, 1, 1, 1 }, /* Set rise value for health checks */
|
||||||
{ "fall", srv_parse_check_fall, 1, 1, 1 }, /* Set fall value for health checks */
|
{ "fall", srv_parse_check_fall, 1, 1, 1 }, /* Set fall value for health checks */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user