Nginx1.90 nginx_stream 做TCP代理和协议负载均衡

来自:互联网
时间:2018-08-20
阅读:

Nginx1.90做TCP代理和协议负载均衡的功能

nginx从1.9.0开始增加了stream模块(ngx_stream_core_module),默认configure不包含该模块,需要在configure的时候加上--with-stream

./configure --prefix=/usr/local/nginx --user=www --group=www 
--add-module=/root/ngx_http_google_filter_module 
--add-module=/root/ngx_http_substitutions_filter_module 
--with-http_stub_status_module 
--with-http_v2_module 
--with-http_ssl_module 
--with-ipv6 
--with-http_gzip_static_module 
--with-http_realip_module 
--with-http_flv_module 
--with-http_sub_module 
--with-stream

配置文件很简单,最基本的

.....................
events {
use epoll;
worker_connections 51200;
}
stream {
server {
listen 2002;
proxy_pass 123.123.123.123:3389;
}
server {
listen 2003;
proxy_pass 123.123.123.123:22;
}
}
http {
.....................

需要在防火墙允许相应的端口通过。这样可以反代远程桌面3389端口或者其他固定的TCP端口,比iptables转发或者虚拟专用网络连接来管理国外Windows或者Linux服务器要方便不少。

当然,该模块最重要的功能是支持TCP负载均衡,比如远程多台MySQL负载均衡。

stream {
upstream mysql {
server 1.1.1.1:3306;
server 2.2.2.2:3306;
server 3.3.3.3:3306;
}
server {
listen 3306;
proxy_pass mysql;
}
}

官方文档http://nginx.org/en/docs/stream/ngx_stream_core_module.html

返回顶部
顶部