Bootstrap

nginx tcp转发_nginx 4层转发、代理、负载均衡

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

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

e196a62429bd5b48e744f5cfee992a32.png

添加模块

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-streammakemake install

配置

a482c05d4d4347f7d9e7b84f5dd9f78e.png

在 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;    }}

总结

有了stream功能,不止http服务,其他很多服务都可以做到负载均衡。

1afe1c7a03dfffff0da35920effc6c0e.png
;