Nginx实现TCP端口的侦听及转发操作步骤

 更新时间:2024年11月09日 10:42:13   作者:AiFlutter  
这篇文章主要介绍了Nginx实现TCP端口的侦听及转发的相关资料,文章介绍了如何使用Nginx进行TCP代理(四层代理)来处理MQTT的集群需求,包括配置Nginx支持stream模块、编写TCP代理配置文件以及重新加载Nginx以应用更改,需要的朋友可以参考下

一、说明

由于我们在使用mqtt时,会接收大量的客户端连接,单机的mqtt肯定是扛不住的,所以需要一个mqtt的集群来处理,这时就得有一个网关来负责请求的转发

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

在之前的版本如果想支持,需要打补丁,安装模块nginx_tcp_proxy_module。 http代理,通常就是我们说的七层代理,工作在第七层应用层。 而tcp代理,就是我们常说的四层代理,工作在网络层和传输层

http代理,通常就是我们说的七层代理,工作在第七层应用层
而tcp代理,就是我们常说的四层代理,工作在网络层和传输层

需要用到的命令

命令说明
firewall-cmd --list-ports  

查看开放的端口号 

firewall-cmd --zone=public --add-port=8888/tcp --permanent开放对应端口号:8888
firewall-cmd --zone=public --remove-port=80/tcp --permanent关闭端口号
firewall-cmd --reload 重启防火墙 
 systemctl status firewalld.service 查看防火墙状态

二、操作步骤

2.1 查看nginx是否安装stream

nginx -V | tr ' ' '\n'|grep stream

如果出现下面两项,说明支持

--with-stream
--with-stream_ssl_module

2.2 如果没有则重新安装nginx

1. sudo yum install nginx -y
2. sudo yum -y install epel-release
3. yum -y install nginx-all-modules.noarch
4. vi nginx.conf   #顶部加一行load_module /usr/lib64/nginx/modules/ngx_stream_module.so;

2.3 tcp代理(mqtt为例)

  • tcp代理与我们平常说的网站反向代理不一样,它是基于tcp协议
  • stream反向代理模块与http和events是平级的,不要把配置写到http里面了

为了方便添加stream配置,我们单独在nginx目录下创建一个stream目录,存放tcp代理配置文件

在 /etc/nginx/nginx.conf 中加入如下:

stream {
log_format proxy '$remote_addr [$time_local] '
'$protocol $status $bytes_sent $bytes_received '
'$session_time "$upstream_addr" '
'"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
access_log  /var/log/nginx/stream.log proxy;
open_log_file_cache off;
include stream/*conf;
}

在nginx/stream下创建一个mqtt.conf配置文件

upstream mqtt_tcp_server{
    server ec2-52-90-93-84.compute-1.amazonaws.com:8883;
} 
server {
listen 8883; #监听端口
proxy_connect_timeout 150s;
proxy_timeout 150s;
proxy_pass mqtt_tcp_server; #反向代理地址
proxy_buffer_size 3M;
tcp_nodelay on;
}

重载nginx

/usr/local/nginx/sbin/nginx -s reload

当我们访问nginx的8883端口时,会自动代理到目标主机的8883端口上

总结

到此这篇关于Nginx实现TCP端口的侦听及转发的文章就介绍到这了,更多相关Nginx TCP端口侦听及转发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • nginx的请求转发配置过程

    nginx的请求转发配置过程

    Nginx在Windows和Linux环境下的安装、启动、停止、配置和请求转发过程,配置文件语法检测、优雅关闭、热部署和日志文件重新打开,配置多个服务的请求转发规则,修改前端API地址,设置最大上传文件大小
    2024-12-12
  • Nginx实现服务端集群搭建

    Nginx实现服务端集群搭建

    本文介绍了如何搭建Nginx服务端集群,主要包括动静分离及其Tomcat集群搭建,通过本文可以了解如何搭建高效、可扩展、高可用的服务器架构,提高网站性能和可靠性,感兴趣的可以了解一下
    2023-08-08
  • nginx参数的详细介绍

    nginx参数的详细介绍

    这篇文章主要介绍了nginx参数的详细介绍的相关资料,需要的朋友可以参考下
    2017-06-06
  • 封80端口应对策略 Nginx反向代理For WIN2003超级傻瓜式配置

    封80端口应对策略 Nginx反向代理For WIN2003超级傻瓜式配置

    封80应对策略,Nginx反向代理ForWIN2003超级傻瓜式配置!
    2010-03-03
  • nginx 如何实现读写限流的方法

    nginx 如何实现读写限流的方法

    这篇文章主要介绍了nginx 如何实现读写限流的方法的相关资料,这里提供实例代码及如何配置,需要的朋友可以参考下
    2016-12-12
  • Nginx 代理转发阿里云OSS上传的实现代码

    Nginx 代理转发阿里云OSS上传的实现代码

    这篇文章主要介绍了Nginx 代理转发阿里云OSS上传的实现代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Ubuntu系统下的Nginx服务器软件安装时的常见错误解决

    Ubuntu系统下的Nginx服务器软件安装时的常见错误解决

    这篇文章主要介绍了Ubuntu系统下的Nginx服务器软件安装时的常见问题解决,包括彻底卸载Nginx的方法介绍,需要的朋友可以参考下
    2016-03-03
  • Nginx部署SSL证书的过程

    Nginx部署SSL证书的过程

    SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本,这篇文章主要介绍了Nginx部署SSL证书的相关知识,需要的朋友可以参考下
    2022-10-10
  • nginx地址重写、反向代理方式

    nginx地址重写、反向代理方式

    这篇文章主要介绍了nginx地址重写、反向代理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Nginx集成RTMP模块实现RTMP推拉流完整方案

    Nginx集成RTMP模块实现RTMP推拉流完整方案

    本文详解Linux环境下Nginx集成RTMP模块的部署流程,涵盖推拉流配置、多协议支持、高并发实时转码、安全鉴权及性能优化,适合构建企业级流媒体服务,具备低延迟、开源免费等优势,感兴趣的朋友跟随小编一起看看吧
    2025-08-08

最新评论