首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡

使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡

作者头像
一只牛博
发布2025-05-31 09:34:56
发布2025-05-31 09:34:56
26400
代码可运行
举报
运行总次数:0
代码可运行
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡

为什么使用stream模块?

  • TCP层级代理: MySQL和RabbitMQ都是基于TCP的协议,而不是HTTP。stream模块允许Nginx在TCP层级进行代理,使得它可以处理非HTTP流量。
  • 协议透明性: 使用stream模块,Nginx不会解析MySQL或AMQP协议,这意味着它可以无缝地传递数据,保持协议的完整性。
  • 性能和高可用性: 通过在多个后端服务器之间分发连接,stream模块可以实现负载均衡,提高性能和高可用性。
  • 灵活性: 使用stream模块,你可以代理几乎任何基于TCP或UDP的服务,使Nginx成为一个强大的网络代理工具。

nginx如何引入stream模块?

在./configure的时候加入模块--with-stream

代码语言:javascript
代码运行次数:0
运行
复制
./configure --prefix=/usr/local/nginx --with-stream

nginx配置文件中实现MySQL反向代理

下面是反向代理实现,3306到10002

代码语言:javascript
代码运行次数:0
运行
复制
stream {

    server {
        listen 10002;
        proxy_connect_timeout 5s;
        proxy_timeout 300s;
        proxy_pass 127.0.0.1:3306;
    }
}
http { # ...其他HTTP配置... }

nginx配置文件中实现RabbitMQ负载均衡

代码语言:javascript
代码运行次数:0
运行
复制
stream {
	upstream rabbitmq_nodes {
	server 127.0.0.1:5672 max_fails=3 fail_timeout=30s;   # 第一个节点
	server 127.0.0.1:5673 max_fails=3 fail_timeout=30s;   # 第二个节点
	server 127.0.0.1:5674 max_fails=3 fail_timeout=30s;   # 第三个节点

# 健康检查
	}

	server {
		listen 5675;
		proxy_pass rabbitmq_nodes;
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
  • 为什么使用stream模块?
  • nginx如何引入stream模块?
  • nginx配置文件中实现MySQL反向代理
  • nginx配置文件中实现RabbitMQ负载均衡
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档