nginx 通过 stream 实现 对 Tcp端口的侦听及转发 【firewall】
十年河东,十年河西,莫欺少年穷
学无止境,精益求精
更详细的资料,请参阅:https://www.zybuluo.com/orangleliu/note/478334
本篇博客用到 linux 防火墙开通端口,因此先贴出防火墙相关指令
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 # 查看防火墙状态 systemctl stop firewalld.service # 关闭防火墙 systemctl disable firewalld.service # 永久关闭防火墙 systemctl enable firewalld.service # 开机启动防火墙
redis 侦听 TCP端口,需要在HTTP同级别下添加 stream 节点
注意:stream 节点同 http 节点同级
events { worker_connections 1024; } stream { upstream tcp_port { hash $remote_addr consistent; server 192.168.136.136:5574; } server { listen 5574;
# listen 10000 udp; 如需代理udp端口则在端口后面加udp即可
proxy_pass tcp_port;
tcp_nodelay on;
proxy_timeout 2s;
}
}
http {
include mime.types;
default_type application/octet-stream;
上述配置说明 侦听Nginx服务器5574端口,通过Nginx服务器,访问目标服务器5574端口。
如果你做Redis集群 或 mySQL集群时,在 upstream 节点下可添加多台服务器【ip+端口】,达到负载均衡的目的
配置好nginx后,分别在nginx 服务器 和 目标服务器开通 5574 端口
[root@localhost nginx]# firewall-cmd --zone=public --add-port=5574/tcp --permanent success [root@localhost nginx]# firewall-cmd --reload
最后,我们可以通过telnet nginx 服务器 5574 端口,检测是否配置成功。
最后贴出负载均衡相关配置【redis 及 tomcat】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)