Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql HAProxy在TCP模式下未返回错误_Postgresql_Tcp_Syslog_Haproxy - Fatal编程技术网

Postgresql HAProxy在TCP模式下未返回错误

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

我有一个到PostgreSQL机器列表的HAProxy路由。当主机打开PostgreSQL时,我可以使用下面的行成功连接。在所有主机上都关闭PostgreSQL的情况下,我希望看到来自HAProxy的错误消息,类似于“连接被拒绝”,但没有看到任何东西。。。以下是我的配置示例:

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
两个问题:

  • 对于日志记录错误,我的配置看起来正常吗

  • HAProxy是否支持TCP连接的个性化错误消息?我注意到,在特定的HTTP响应代码中,HAProxy支持errorfile条目,但我看不到与TCP相关的任何内容中提到这一点。。。我错了吗


  • 如果有任何问题,请毫不犹豫地询问

    您的错误已正确记录:“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