Nginx TCP/UDP代理详细说明以及案例
参考资料
Nginx 支持 TCP 和 UDP 代理,通常用于负载均衡、反向代理等场景。以下是详细说明及案例:
1. TCP/UDP 代理配置
Nginx 从 1.9.0 版本开始支持 TCP 代理,1.9.13 版本开始支持 UDP 代理。需要在编译时启用 --with-stream 模块。
1.1 基本配置
在 nginx.conf 中添加 stream 块来配置 TCP/UDP 代理。
stream {
upstream backend {
server 192.168.1.101:3306;
server 192.168.1.102:3306;
}
server {
listen 3306;
proxy_pass backend;
}
}1.2 UDP 代理配置
UDP 代理需要在 listen 指令中指定 udp 参数。
stream {
upstream dns_servers {
server 192.168.1.103:53;
server 192.168.1.104:53;
}
server {
listen 53 udp;
proxy_pass dns_servers;
}
}2. 案例
2.1 MySQL TCP 代理
假设有两台 MySQL 服务器,希望通过 Nginx 进行负载均衡。
stream {
upstream mysql_servers {
server 192.168.1.101:3306;
server 192.168.1.102:3306;
}
server {
listen 3306;
proxy_pass mysql_servers;
}
}2.2 DNS UDP 代理
假设有两台 DNS 服务器,希望通过 Nginx 进行负载均衡。
stream {
upstream dns_servers {
server 192.168.1.103:53;
server 192.168.1.104:53;
}
server {
listen 53 udp;
proxy_pass dns_servers;
}
}3. 高级配置
3.1 健康检查
Nginx 支持 TCP/UDP 健康检查,确保后端服务器可用。
stream {
upstream backend {
server 192.168.1.101:3306;
server 192.168.1.102:3306;
health_check interval=10 fails=3 passes=2;
}
server {
listen 3306;
proxy_pass backend;
}
}3.2 SSL 终止
Nginx 可以在 TCP 代理中终止 SSL 连接。
stream {
upstream backend {
server 192.168.1.101:3306;
server 192.168.1.102:3306;
}
server {
listen 3306 ssl;
proxy_pass backend;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
}
}4. 总结
Nginx 的 TCP/UDP 代理功能强大,适用于多种场景,如数据库负载均衡、DNS 负载均衡等。通过合理配置,可以提高系统的可用性和性能。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-98.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
