ha代理后面的redis - 多次连接重试和连接关闭

时间:2016-11-11 11:23:10

标签: redis haproxy ubuntu-16.04

redis的Ha代理配置显示以下内容:

frontend redis
  bind *:6379 name port6379
  mode tcp
  timeout client 15s

    #define hosts
    acl redis_3 hdr(host) -i im.test.com

    #figure out which one to use
    use_backend test_redis if redis_3

backend test_redis
  mode tcp
  timeout connect  4s
  timeout server   30s
  #balance leastconn
  option tcplog
  option tcp-check
  tcp-check send PING\r\n
  tcp-check expect string +PONG
  #tcp-check send QUIT\r\n
  #tcp-check expect string +OK
  server node1_redis 10.146.99.164:6379 check inter 1s

HA proxylogs显示多个连接到redir。在redir服务器上,我看到"连接由peer"

重置

在浏览器中,我获得了重新初始化的会话'。

但是使用redis-cli -h ping我得到了正确的PONG响应。在短时间内将浏览器直接引导至端口6379上的redis服务器:

-ERR wrong number of arguments for 'get' command
-ERR unknown command 'Host:'
-ERR unknown command 'User-Agent:'
-ERR unknown command 'Accept:'
-ERR unknown command 'Accept-Language:'
-ERR unknown command 'Accept-Encoding:'
-ERR unknown command 'Cookie:'
-ERR unknown command 'Connection:'
-ERR unknown command 'Upgrade-Insecure-Requests:'

HAproxy统计数据显示后端已经启动。

任何人都可以帮我吗?为什么在通过HA代理连接时会出错?

1 个答案:

答案 0 :(得分:0)

解决了!由于某种原因,主机名未在acl中读取。当我将其更改为默认后端时,它立即起作用。

也许有人可以告诉我为什么这个例子中的主机名不起作用?

但对我而言,它现在有效。