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服务器上,我看到“通过对等方重置连接”
在浏览器中,我得到一个“重新初始化的会话”。
但是通过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代理连接时会出错?
最佳答案
解决了!由于某种原因,未在ACL中读取主机名。当我将它更改为默认后端时,它立即工作了。
也许有人可以告诉我为什么这个示例中的主机名不起作用?
但对我来说现在有用了。
简