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代理连接时会出错?
答案 0 :(得分:0)
解决了!由于某种原因,主机名未在acl中读取。当我将其更改为默认后端时,它立即起作用。
也许有人可以告诉我为什么这个例子中的主机名不起作用?
但对我而言,它现在有效。
扬