2016-11-11 124 views
0

哈代理配置Redis的顯示如下:Redis的 - 多個連接和重試連接關閉

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服務器上,我看到「通過對等方重置連接」

在瀏覽器中,我收到了'重新初始化會話'。

但使用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代理連接時出現錯誤?

+0

我得到一個連接時,捲曲直接連接到服務器redis的。但是,當我使用HAproxy進行連接時,出現錯誤(52)來自服務器的空回覆 –

回答

0

解決了!由於某種原因,主機名未在acl中讀取。當我將其更改爲默認後端時,它即刻起作用。

也許有人可以告訴我爲什麼在這個例子中的主機名不起作用?

但對我而言,它現在有效。

使用Redis的服務器上的Redis-CLI組的Hello World的時候