Postgresql HAProxy在TCP模式下未返回错误
我有一个到PostgreSQL机器列表的HAProxy路由。当主机打开PostgreSQL时,我可以使用下面的行成功连接。在所有主机上都关闭PostgreSQL的情况下,我希望看到来自HAProxy的错误消息,类似于“连接被拒绝”,但没有看到任何东西。。。以下是我的配置示例:Postgresql HAProxy在TCP模式下未返回错误,postgresql,tcp,syslog,haproxy,Postgresql,Tcp,Syslog,Haproxy,我有一个到PostgreSQL机器列表的HAProxy路由。当主机打开PostgreSQL时,我可以使用下面的行成功连接。在所有主机上都关闭PostgreSQL的情况下,我希望看到来自HAProxy的错误消息,类似于“连接被拒绝”,但没有看到任何东西。。。以下是我的配置示例: global log 127.0.0.1 local4 debug chroot /var/lib/haproxy pidfile /var/run/ha
global
log 127.0.0.1 local4 debug
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
defaults
mode tcp
log global
option tcplog
option dontlognull
option redispatch
retries 3
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout check 10s
maxconn 3000
frontend cluster01
bind *:33300
mode tcp
option tcplog
default_backend cluster01
backend cluster01
mode tcp
option tcplog
balance roundrobin
server host1 <host ip>:5432 check
server host2 <host ip>:5432 check
以下是syslog中的条目:
2014-05-28T21:17:15.486474+00:00 localhost.localdomain [info] haproxy[28503]: 127.0.0.1:58014 [28/May/2014:21:16:55.170] cluster01 cluster01/<NOSRV> -1/-1/0 0 SC 0/0/0/0/0 0/0
2014-05-28221:17:15.486474+00:00localhost.localdomain[info]haproxy[28503]:127.0.0.1:58014[28/May/2014:21:16:55.170]cluster01 cluster01/-1/-1/0 SC 0/0/0/0/0
两个问题:
如果有任何问题,请毫不犹豫地询问您的错误已正确记录:“SC”标志表示无法建立服务器连接,并且服务器名称还表示连接未传递到任何服务器。这通常是因为您的服务器已关闭(或者至少通过您启用的检查被视为已关闭)
在连接失败的情况下,不可能(也不希望)返回任何内容,因为有一个几乎无限的基于TCP的协议列表,所有这些协议都不兼容,而且许多协议甚至不希望响应指示错误。相反,haproxy尝试模仿它在另一端的体验,甚至尝试在从服务器获得重置时向客户端发送重置,尽管无法保证它将以这种方式交付。没错,我应该用不同的措辞回答第一个问题。应该是类似“我的配置在返回错误(到客户端)时看起来正常吗?”。你的第二段似乎回答了我的问题,谢谢
psql:
2014-05-28T21:17:15.486474+00:00 localhost.localdomain [info] haproxy[28503]: 127.0.0.1:58014 [28/May/2014:21:16:55.170] cluster01 cluster01/<NOSRV> -1/-1/0 0 SC 0/0/0/0/0 0/0