stream
模块允许Nginx在TCP层级进行代理,使得它可以处理非HTTP流量。stream
模块,Nginx不会解析MySQL或AMQP协议,这意味着它可以无缝地传递数据,保持协议的完整性。stream
模块可以实现负载均衡,提高性能和高可用性。stream
模块,你可以代理几乎任何基于TCP或UDP的服务,使Nginx成为一个强大的网络代理工具。在./configure的时候加入模块
--with-stream
./configure --prefix=/usr/local/nginx --with-stream
下面是反向代理实现,3306到10002
stream {
server {
listen 10002;
proxy_connect_timeout 5s;
proxy_timeout 300s;
proxy_pass 127.0.0.1:3306;
}
}
http { # ...其他HTTP配置... }
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;
}
}