我正在配置 HAproxy 并且很乐意与 Redis 一起使用,我的配置相当简单:
global
maxconn 50000
defaults
timeout connect 10s
timeout client 30s
timeout server 30s
log global
mode http
option httplog
maxconn 3000
frontend redis
log /dev/log local0 debug
mode tcp
bind *:7899
default_backend redis_servers
backend redis_servers
server r01 xxx:7899
但是当我尝试使用 CLI 连接到该地址时:
redis-cli -h loadbalancer.test.app -p 7899
我收到这个日志:
Jul 18 15:19:24 lb01 haproxy[114128]: 217.XXX.XX.XXX:279XX [18/Jul/2022:15:19:24.426] redis redis/<NOSRV> -1/-1/0 0 PR 1/1/0/0/0 0/0
我已验证并且 redis 服务器工作正常,如果我执行相同的命令来连接它,但直接使用机器的 ip,我就可以成功使用它。
有人能帮助我理解我所缺少的吗?
谢谢
答案1
在您的默认部分中,模式为http
,您的后端使用相同的模式。您需要将默认部分中的模式从更改为,http
或者在后端下tcp
明确添加模式,tcp
因为 redis 使用 tcp。