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】

 

posted @   天才卧龙  阅读(1972)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示