买了一个 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 就可以了?
1
juzipeek 2021-04-08 21:24:07 +08:00
不可以
|
2
wxlg1117 2021-04-27 18:52:30 +08:00
HAProxy 我记得可以的
|
3
coolloves 2021-06-07 09:20:56 +08:00 1
可以的,nginx 支持 4 层代理,stream
|
5
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 |