个人博客


Nginxtcp协议的代理是通过ngx_stream_core_module这个模块实现的,此模块要1.9.0版本后才有,而且默认是不启用的。安装时应使用配置参数--with-stream启用。

1
2
./configure  --prefix=/usr/local/nginx --with-stream
make && make install

然后通过./nginx -V查看有没有--with-stream参数。

1、tcp负载均衡配置

修改nginx/conf/nginx.conf文件,新增stream {...}配置块,和http{...}配置块是同级关系。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# tcp接入
stream {
upstream socketServer{
server 172.16.122.104:21221;
server 172.16.122.105:21221;
server 172.16.122.106:21221;
}

# tcp全局日志配置
log_format proxy '$remote_addr [$time_local] '
'$protocol $status $bytes_sent $bytes_received '
'$session_time "$upstream_addr" '
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

server {
listen 21220;

# 日志路径配置
access_log /usr/local/nginx/logs/tcp_access.log proxy;
error_log /usr/local/nginx/logs/tcp_error.log;

proxy_connect_timeout 5s; # 后台服务器连接超时时间
proxy_timeout 30s; # 转发后台服务超时时间
proxy_pass socketServer;
}
}

Nginx本地监听21220端口,然后转发到upstream中配置的后台服务器地址,默认是轮询策略。

参考链接