不同于nginx 的http代理
这里为什么要用tcp代理,因为zookeeper是基于tcp/ip协议的
tcp代理如下:
stream {
# 添加socket转发的代理
upstream socket_proxy {
hash $remote_addr consistent;
# 转发的目的地址和端口
server 192.168.123.20:2181 weight=5 max_fails=3 fail_timeout=30s;
}
# 提供转发的服务,即访问localhost:2181,会跳转至代理socket_proxy指定的转发地址
server {
listen 2181;
proxy_connect_timeout 20s;
proxy_timeout 20s;
proxy_pass socket_proxy;
}
}
注意:proxy_connect_timeout 和 proxy_timeout 的时间不要设置得太短,否则出现连接完成后又断开连接的情况