stream模块一般用于tcp/UDP数据流的代理和负载均衡,可以通过stream模块代理转发TCP消息。 ngx_stream_core_module模块由1.9.0版提供。 默认情况下,没有构建此模块,必须使用-with stream配置参数启用。 也就是说,必须在使用./configure --with-stream编译时添加流模块。 流模块的使用方法与http模块相同,语法也基本相同。
stream主要有两个可用场景:
开启stream
修改/etc/nginx/nginx.conf
#增加stream配置,开启stream模块 http{ xxxxxxxxxx } #stream模块和http模块是并列级别的,所以stream要写在http{}外边 stream { log_format basic '$remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time'; access_log /var/log/nginx/stream-access.log basic buffer=32k; # 为了让这个配置文件简单一些,将配置stream放入到/etc/nginx/conf.d,并以.stream做后缀名。 # 需要为每个端口创建一个.stream做后缀名的配置文件 include /etc/nginx/conf.d/*.stream; }
stream { upstream back{ server 192.168.208.1:3000; } server { listen 2000 udp; proxy_connect_timeout 5s; proxy_timeout 300s; proxy_pass back; } }