mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-29 23:01:03 +01:00
MEDIUM: peers: add the "localpeer" global option
localpeer <name> Sets the local instance's peer name. It will be ignored if the "-L" command line argument is specified or if used after "peers" section definitions. In such cases, a warning message will be emitted during the configuration parsing. This option will also set the HAPROXY_LOCALPEER environment variable. See also "-L" in the management guide and "peers" section in the configuration manual.
This commit is contained in:
parent
4f01415d3b
commit
13cd54c08b
@ -603,6 +603,7 @@ The following keywords are supported in the "global" section :
|
|||||||
- insecure-fork-wanted
|
- insecure-fork-wanted
|
||||||
- insecure-setuid-wanted
|
- insecure-setuid-wanted
|
||||||
- issuers-chain-path
|
- issuers-chain-path
|
||||||
|
- localpeer
|
||||||
- log
|
- log
|
||||||
- log-tag
|
- log-tag
|
||||||
- log-send-hostname
|
- log-send-hostname
|
||||||
@ -969,6 +970,15 @@ issuers-chain-path <dir>
|
|||||||
"issuers-chain-path" directory. All other certificates with the same issuer
|
"issuers-chain-path" directory. All other certificates with the same issuer
|
||||||
will share the chain in memory.
|
will share the chain in memory.
|
||||||
|
|
||||||
|
localpeer <name>
|
||||||
|
Sets the local instance's peer name. It will be ignored if the "-L"
|
||||||
|
command line argument is specified or if used after "peers" section
|
||||||
|
definitions. In such cases, a warning message will be emitted during
|
||||||
|
the configuration parsing.
|
||||||
|
|
||||||
|
This option will also set the HAPROXY_LOCALPEER environment variable.
|
||||||
|
See also "-L" in the management guide and "peers" section below.
|
||||||
|
|
||||||
log <address> [len <length>] [format <format>] [sample <ranges>:<smp_size>]
|
log <address> [len <length>] [format <format>] [sample <ranges>:<smp_size>]
|
||||||
<facility> [max level [min level]]
|
<facility> [max level [min level]]
|
||||||
Adds a global syslog server. Several global servers can be defined. They
|
Adds a global syslog server. Several global servers can be defined. They
|
||||||
@ -2323,18 +2333,19 @@ log <address> [len <length>] [format <format>] [sample <ranges>:<smp_size>]
|
|||||||
peer <peername> <ip>:<port> [param*]
|
peer <peername> <ip>:<port> [param*]
|
||||||
Defines a peer inside a peers section.
|
Defines a peer inside a peers section.
|
||||||
If <peername> is set to the local peer name (by default hostname, or forced
|
If <peername> is set to the local peer name (by default hostname, or forced
|
||||||
using "-L" command line option), haproxy will listen for incoming remote peer
|
using "-L" command line option or "localpeer" global configuration setting),
|
||||||
connection on <ip>:<port>. Otherwise, <ip>:<port> defines where to connect to
|
haproxy will listen for incoming remote peer connection on <ip>:<port>.
|
||||||
to join the remote peer, and <peername> is used at the protocol level to
|
Otherwise, <ip>:<port> defines where to connect to in order to join the
|
||||||
identify and validate the remote peer on the server side.
|
remote peer, and <peername> is used at the protocol level to identify and
|
||||||
|
validate the remote peer on the server side.
|
||||||
|
|
||||||
During a soft restart, local peer <ip>:<port> is used by the old instance to
|
During a soft restart, local peer <ip>:<port> is used by the old instance to
|
||||||
connect the new one and initiate a complete replication (teaching process).
|
connect the new one and initiate a complete replication (teaching process).
|
||||||
|
|
||||||
It is strongly recommended to have the exact same peers declaration on all
|
It is strongly recommended to have the exact same peers declaration on all
|
||||||
peers and to only rely on the "-L" command line argument to change the local
|
peers and to only rely on the "-L" command line argument or the "localpeer"
|
||||||
peer name. This makes it easier to maintain coherent configuration files
|
global configuration setting to change the local peer name. This makes it
|
||||||
across all peers.
|
easier to maintain coherent configuration files across all peers.
|
||||||
|
|
||||||
You may want to reference some environment variables in the address
|
You may want to reference some environment variables in the address
|
||||||
parameter, see section 2.3 about environment variables.
|
parameter, see section 2.3 about environment variables.
|
||||||
|
|||||||
@ -127,6 +127,7 @@ struct global {
|
|||||||
char *chroot;
|
char *chroot;
|
||||||
char *pidfile;
|
char *pidfile;
|
||||||
char *node, *desc; /* node name & description */
|
char *node, *desc; /* node name & description */
|
||||||
|
int localpeer_cmdline; /* whether or not the commandline "-L" was set */
|
||||||
struct buffer log_tag; /* name for syslog */
|
struct buffer log_tag; /* name for syslog */
|
||||||
struct list logsrvs;
|
struct list logsrvs;
|
||||||
char *log_send_hostname; /* set hostname in syslog header */
|
char *log_send_hostname; /* set hostname in syslog header */
|
||||||
|
|||||||
@ -15,6 +15,7 @@
|
|||||||
#include <haproxy/compression.h>
|
#include <haproxy/compression.h>
|
||||||
#include <haproxy/global.h>
|
#include <haproxy/global.h>
|
||||||
#include <haproxy/log.h>
|
#include <haproxy/log.h>
|
||||||
|
#include <haproxy/peers.h>
|
||||||
#include <haproxy/tools.h>
|
#include <haproxy/tools.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1207,6 +1208,40 @@ int cfg_parse_global(const char *file, int linenum, char **args, int kwm)
|
|||||||
else
|
else
|
||||||
global.tune.options |= GTUNE_STRICT_LIMITS;
|
global.tune.options |= GTUNE_STRICT_LIMITS;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp(args[0], "localpeer")) {
|
||||||
|
if (alertif_too_many_args(1, file, linenum, args, &err_code))
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
if (*(args[1]) == 0) {
|
||||||
|
ha_alert("parsing [%s:%d] : '%s' expects a name as an argument.\n",
|
||||||
|
file, linenum, args[0]);
|
||||||
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (global.localpeer_cmdline != 0) {
|
||||||
|
ha_warning("parsing [%s:%d] : '%s' ignored since it is already set by using the '-L' "
|
||||||
|
"command line argument.\n", file, linenum, args[0]);
|
||||||
|
err_code |= ERR_WARN;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cfg_peers) {
|
||||||
|
ha_warning("parsing [%s:%d] : '%s' ignored since it is used after 'peers' section.\n",
|
||||||
|
file, linenum, args[0]);
|
||||||
|
err_code |= ERR_WARN;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(localpeer);
|
||||||
|
if ((localpeer = strdup(args[1])) == NULL) {
|
||||||
|
ha_alert("parsing [%s:%d]: cannot allocate memory for '%s'.\n",
|
||||||
|
file, linenum, args[0]);
|
||||||
|
err_code |= ERR_ALERT | ERR_FATAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
setenv("HAPROXY_LOCALPEER", localpeer, 1);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
struct cfg_kw_list *kwl;
|
struct cfg_kw_list *kwl;
|
||||||
int index;
|
int index;
|
||||||
|
|||||||
@ -1964,6 +1964,7 @@ static void init(int argc, char **argv)
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
setenv("HAPROXY_LOCALPEER", localpeer, 1);
|
setenv("HAPROXY_LOCALPEER", localpeer, 1);
|
||||||
|
global.localpeer_cmdline = 1;
|
||||||
break;
|
break;
|
||||||
case 'f' :
|
case 'f' :
|
||||||
if (!list_append_word(&cfg_cfgfiles, *argv, &err_msg)) {
|
if (!list_append_word(&cfg_cfgfiles, *argv, &err_msg)) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user