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

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

nginx 负载均衡方式(nginx4层转发代理)(1)

添加模块

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

配置

nginx 负载均衡方式(nginx4层转发代理)(2)

在 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服务,其他很多服务都可以做到负载均衡。

nginx 负载均衡方式(nginx4层转发代理)(3)

,