2016-11-11 2 views
0

Ha Proxy-Konfiguration für redis zeigt folgendes:redis hinter ha proxy - mehrere Verbindungsversuche und Verbindung geschlossen

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 mehrere Verbindungen zeigen redir. Auf dem Redir-Server sehe ich "Verbindung durch Peer zurückgesetzt"

Im Browser bekomme ich eine "neu initialisierte Sitzung".

Aber mit redis-cli -h ping bekomme ich eine korrekte PONG-Antwort. direkt an den redis Server auf Port 6379 den Browser Führung geben die folgenden nach kurzer Zeit:

-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 Statistiken zeigen Backend-up ist.

Kann mir jemand dabei helfen? Warum bekomme ich einen Fehler bei der Verbindung über den HA-Proxy?

+0

wenn redis-cli set Hallo Welt auf dem redis-Server erhalte ich eine Verbindung, wenn sie direkt mit curl auf den redis Server verbinden. Aber wenn ich den HAproxy zur Verbindung verwende, gibt es einen Fehler (52) Leere Antwort vom Server –

Antwort

0

Gelöst es! Der Hostname wurde aus irgendeinem Grund nicht in der ACL gelesen. Sofort, als ich es in ein Standard-Backend änderte, funktionierte es.

Vielleicht kann mir jemand sagen, warum der Hostname in diesem Beispiel nicht funktioniert hat?

Aber für mich funktioniert es jetzt.

Jan