使用Nginx的Stream模块做数据流代理
简单介绍一下Nginx的Stream模块
stream模块一般用于tcp/UDP数据流的代理和负载均衡,可以通过stream模块代理转发TCP消息。 ngx_stream_core_module模块由1.9.0版提供。 默认情况下,没有构建此模块。 -必须使用-with stream配置参数启用。 也就是说,必须在使用./configure --with-stream编译时添加流模块。 流模块的使用方法与http模块相同,语法也基本相同。
可以用以下指令看自己有没有安装改模块。
nginx -V结果如图:
安装好就可以使用流代理啦。
刚好昨天做了个数据库的代理,配置如下:
stream {
upstream cloudsocket {
hash $remote_addr consistent;
server 这是要代理的地址:3306 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 3306; #数据库服务器监听端口
proxy_connect_timeout 10s;
proxy_timeout 300s; #设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。
proxy_pass cloudsocket;
}
}