首页 > 软件服务 > WEB软件 > 关于NGINX的STEAM模块端口转发服务

关于NGINX的STEAM模块端口转发服务

WEB软件

一.问题情况

遇到程序需要转发UDP协议数据包,虽然iptables和firewalld都有转发规则,但是不太会用,最后还是用熟悉的nginx的steam模块进行端口转发.

二.解决办法

nginx从1.9.0版本开始,新增了ngx_stream_core_module模块,新增了ngx_stream_core_module模块,使nginx支持四层负载均衡。默认编译的时候该模块并未编译进去,需要编译的时候添加--with-stream,使其支持stream代理。

steam代理的端口完全走端口转发.无法再被server的listen监听使用.所以不要冲突

直接在nginx.conf的http配置上面增加steam配置即可(不是写入http配置里,在外面)

{NAME}是upstream的名称,自己起一个就好.{IP}是转发到的IP,{PORT}是端口.listen后的{PORT}是监听端口.实际用处就是把listen的监听端口的TCP和UDP转发到upstream的server上去.这里upstream和反向代理时用法一样,可以做权重分配和备用什么的.

然后重新加载nginx配置就可以正常的端口转发了.