Nginx四层负载均衡配置 代理tcp协议

2023-08-23 17:24:19 浏览数 (1)

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

代码语言:javascript复制
./configure  --prefix=/usr/local/nginx --with-stream
make && make install

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

1、tcp负载均衡配置

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

代码语言:javascript复制
# 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中配置的后台服务器地址,默认是轮询策略。

参考链接

  • Nginx支持Socket转发过程详解
  • nginx 1.12 stream 日志设置

0 人点赞