'-' (dash), '_' (underscore) , '.' (dot) and ':' (colon). ACL names are
case-sensitive, which means that "www" and "WWW" are two different proxies.
-Historically, all proxy names could overlap, it just caused troubles in the
-logs. Since the introduction of content switching, it is mandatory that two
-proxies with overlapping capabilities (frontend/backend) have different names.
-However, it is still permitted that a frontend and a backend share the same
-name, as this configuration seems to be commonly encountered.
+Historically, all proxy names could overlap when certain conditions were met
+(e.g. when not having the same frontend/backend capabilities), but it used to
+cause too many problems in the logs as well as confusion on CLI operations,
+stick-tables naming and stats retrieval. It is now mandatory that two proxies
+have different names, regardless of their respective capabilities.
Right now, two major proxy modes are supported : "tcp", also known as layer 4,
and "http", also known as layer 7. In layer 4 mode, HAProxy simply forwards
if (curproxy) {
/* different capabilities but still same name: forbidden soon */
- ha_warning("Parsing [%s:%d]: %s '%s' has the same name as %s '%s' declared at %s:%d."
- " This is dangerous and will not be supported anymore in version 3.3.\n",
+ ha_alert("Parsing [%s:%d]: %s '%s' has the same name as %s '%s' declared at %s:%d."
+ " This is no longer supported as of 3.3. Please rename one or the other.\n",
file, linenum, proxy_cap_str(rc), args[1], proxy_type_str(curproxy),
curproxy->id, curproxy->conf.file, curproxy->conf.line);
- err_code |= ERR_WARN;
+ err_code |= ERR_ALERT | ERR_ABORT;
+ goto out;
}
if (rc & PR_CAP_DEF && strcmp(args[1], "from") == 0 && *args[2] && !*args[3]) {