Nginx 可以对 Redis 集群做负载均衡吗?

2021-04-03 19:09:42 +08:00
 daimaosix

买了一个 Redis 集群,但是没有公网 IP,所以通过有公网的服务器使用 Nginx 对 Redis 集群进行 TCP 反向代理,以下是 Nginx 配置:

upstream redis{
        server 192.168.0.21:6379 weight=1;
        server 192.168.0.22:6379 weight=1;
        server 192.168.0.24:6379 weight=1;
}

server{
       	listen 6330;
        proxy_connect_timeout 2s;
        proxy_timeout 1h;
        proxy_pass redis;
}

这样做不知道会不会有什么问题,业务是 Java 写的,Java 在配置 Redis 的时候要把集群所有 IP 都写入配置中,如果使用 Nginx 做 TCP 转发是不是就只写一个 Nginx 所在的 IP 就可以了?

1540 次点击
所在节点    NGINX
5 条回复
juzipeek
2021-04-08 21:24:07 +08:00
不可以
wxlg1117
2021-04-27 18:52:30 +08:00
HAProxy 我记得可以的
coolloves
2021-06-07 09:20:56 +08:00
可以的,nginx 支持 4 层代理,stream
Toadair
2021-06-10 13:43:35 +08:00
@coolloves 请问大佬,如果是四层代理,那么原始 IP 如何透传呢?
coolloves
2021-06-10 17:12:41 +08:00
@Toadair 我也没用过,只是知道支持,刚了解了下,
ginx 配置 proxy_protocol
后端需要支持 proxy protocol v1
如果你的后端不支持,那必须修改代码
proxy protocol 的标准参见 HAProxy 官方文档:
https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/767825

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX