Stream模块是Nginx的一个核心模块,用于处理TCP/UDP流量(4层负载均衡),与默认的HTTP模块(7层负载均衡)不同。以下是启用和配置Stream模块的方法:
nginx -V 2>&1 | grep -o with-stream
如果输出with-stream
则表示已编译包含该模块。
# 查看当前编译参数
nginx -V
# 重新配置并添加--with-stream参数
./configure --with-stream [其他原有参数]
make
make install
在nginx.conf主配置文件中添加stream块(与http块同级):
# 主配置文件nginx.conf中
events {
worker_connections 1024;
}
http {
# 原有的HTTP配置
}
stream {
# Stream模块配置
include /etc/nginx/stream.conf.d/*.conf;
}
创建单独的stream配置文件,例如/etc/nginx/stream.conf.d/mysql.conf
:
# MySQL负载均衡示例
upstream mysql_servers {
server 192.168.1.10:3306;
server 192.168.1.11:3306;
}
server {
listen 3306;
proxy_pass mysql_servers;
proxy_connect_timeout 1s;
}
stream {
upstream tcp_servers {
server backend1.example.com:12345;
server backend2.example.com:12345;
}
server {
listen 12345;
proxy_pass tcp_servers;
}
}
stream {
upstream dns_servers {
server 192.168.1.10:53;
server 192.168.1.11:53;
}
server {
listen 53 udp;
proxy_pass dns_servers;
proxy_timeout 1s;
proxy_responses 1;
}
}
nginx -t # 测试配置
nginx -s reload # 重新加载配置
udp
参数如需更复杂的配置,可以参考Nginx官方文档中的Stream模块部分。