Haproxy 1.6.2无法识别旋转变压器部分

时间:2015-11-19 17:08:27

标签: haproxy

作为测试,我运行了一个本地绑定实例:

>netstat -ant | grep LISTEN
tcp        0      0 10.72.186.23:53         0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN
...

>nslookup mysubdomain.example.com 127.0.0.1
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   mysubdomain.example.com
Address: nn.nn.nn.251
Name:   mysubdomain.example.com
Address: nn.nn.nn.249
Name:   mysubdomain.example.com
Address: nn.nn.nn.201
Name:   mysubdomain.example.com
Address: nn.nn.nn.138

我在同一台主机上运行haproxy 1.6.2,并带有解析器部分:

resolvers dns
    nameserver dns1 127.0.0.1:53
    nameserver dns2 10.72.186.23:53
    hold valid 10s

它不会拒绝解析器部分,但似乎也没有使用它。它不会显示在统计信息页面中,并尝试添加此服务命令:

server mysubdomain-dev mysubdomain.example.com

导致此错误:

>service haproxy restart
 * Restarting haproxy haproxy
[ALERT] 322/171813 (10166) : parsing [/etc/haproxy/haproxy.cfg:77] : 'server mysubdomain-dev' : invalid address: 'mysubdomain.example.com' in 'mysubdomain.example.com'
[ALERT] 322/165300 (29751) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg
[ALERT] 322/165300 (29751) : Fatal errors found in configuration.

haproxy doc https://cbonte.github.io/haproxy-dconv/configuration-1.6.html表明这应该有用。

服务器< name> < address> [:[port]] [param *]

...

<地址>是服务器的IPv4或IPv6地址。或者,a           支持resolvable hostname,但将解析此名称           在启动期间。地址" 0.0.0.0"或" *"具有特殊意义。

是否需要将其他一些部分添加到激活解析器部分的haproxy.cfg中?

2 个答案:

答案 0 :(得分:6)

当HAProxy首次启动时,它会尝试解析所有后端中任何服务器的主机名以填充服务器结构。在第一个启动阶段,HAProxy使用操作系统解析程序,即通常是protocol DeletableImageViewDelegate { func deleteImageWithTag(tag: Int!) -> (Bool) func addImageOnViewWithTag(tag: Int!) -> (Bool) ... } class DeletableImageView: UIView { var view: UIView! var delegate: DeletableImageViewDelegate? // Some random methods + some use of the delegate protocol's methods ... } 文件中定义的服务器。

仅在稍后,当检查期间更新服务器的IP地址时,HAProxy将使用其内部解析程序配置及其内部DNS解析程序。

从您的错误说明中,现在看起来您的主机本身无法解析/etc/resolv.conf主机名。只有在没有明确命名的名称服务器的情况下它才能解析主机名,HAProxy才能启动。这可以用例如

来验证
mysubdomain.example.com

答案 1 :(得分:0)

可能是您没有指定要用于该服务器的解析器

服务器mysubdomain-dev mysubdomain.example.com - >

服务器mysubdomain-dev mysubdomain.example.com resolvers dns