4 层转发、代理、负载均衡

nginx在1.9.0的时候,增加了一个 stream 模块,用来实现四层协议(网络层和传输层)的转发、代理、负载均衡等。

添加模块

nginx默认是没有编译这个模块的,要使用stream模块,编译的时候记得加上–with-stream这个参数即可。

./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_stub_status_module --with-stream
make
make install

配置

在 http 配置段外面,设置stream配置,默认是tcp,如果需要转发udp就需要带上udp的标记。

stream {
    upstream tcp_server {
        server 192.168.1.10:8888;
        server 192.168.1.11:8888;
    }
    upstream udp_server{
        server 192.168.1.10:8877;
        server 192.168.1.11:8877;
    }
    server {
        listen 10133;
        proxy_pass tcp_server;
    }
    server {
        listen 10123 udp;
        proxy_pass udp_server;
    }
}