我不断看到带有双参数语法的 HAProxy 配置示例。事实上,1.4.18 提供的默认配置文件包含以下内容:
listen appli1-rewrite 0.0.0.0:10001
cookie SERVERID rewrite
balance roundrobin
server app1_1 192.168.34.23:8080 cookie app1inst1 check inter 2000 rise 2 fall 5
server app1_2 192.168.34.32:8080 cookie app1inst2 check inter 2000 rise 2 fall 5
server app1_3 192.168.34.27:8080 cookie app1inst3 check inter 2000 rise 2 fall 5
server app1_4 192.168.34.42:8080 cookie app1inst4 check inter 2000 rise 2 fall 5
我注意到完全缺乏任何绑定选项,所以我是否应该相信这是绑定的简写?
HAProxy 文档 (http://haproxy.1wt.eu/download/1.5/doc/configuration.txt) 包含一个与此语法无关的示例,但没有在任何地方指定、记录或解释它。
文档仅显示listen <name>
:
All proxy names must be formed from upper and lower case letters, digits,
'-' (dash), '_' (underscore) , '.' (dot) and ':' (colon). ACL names are
case-sensitive, which means that "www" and "WWW" are two different proxies.
(即没有空格,所以这显然不仅仅是名称的一部分)
有没有关于此语法的官方文档?
谢谢。
答案1
我想我刚刚找到了答案superuser.com 上的这个答案在 HAProxy 1.3.x 中,已弃用的参考手册说:
2) Declaration of a listening service
=====================================
Service sections start with the 'listen' keyword :
listen <instance_name> [ <IP_address>:<port_range>[,...] ]
到 1.4 版本,本手册已不复存在,但似乎为了向后兼容,这种语法仍然被接受。在 1.6 中,listen
没有bind
指令的部分开始产生警告。
所以答案是,它是旧语法,不应再使用。