stream {
upstream backend {
server backend1.example.com:12345;
server backend2.example.com:12345;
}
server {
listen 12345;
proxy_pass backend;
}
}
TCP 代理说明:
stream:Stream 上下文,用于 TCP/UDP 代理upstream:上游服务器组server:服务器配置listen 12345:监听 12345 端口proxy_pass backend:代理到上游服务器组TCP 代理原理: TCP 代理是一种将 TCP 流量转发到后端服务器的技术,Nginx 可以作为 TCP 代理,转发 TCP 流量。TCP 代理可以用于负载均衡、健康检查、会话保持等。
stream {
upstream dns {
server 192.168.0.1:53;
server 192.168.0.2:53;
}
server {
listen 53 udp reuseport;
proxy_pass dns;
}
}
UDP 代理说明:
stream:Stream 上下文,用于 TCP/UDP 代理upstream:上游服务器组server:服务器配置listen 53 udp reuseport:监听 53 端口,启用 UDP 和端口复用proxy_pass dns:代理到上游服务器组UDP 代理原理: UDP 代理是一种将 UDP 流量转发到后端服务器的技术,Nginx 可以作为 UDP 代理,转发 UDP 流量。UDP 代理可以用于负载均衡、健康检查、会话保持等。
| 指令 | 说明 | 示例 |
|---|---|---|
stream | Stream 上下文 | stream { ... } |
upstream | 上游服务器组 | upstream backend { ... } |
server | 服务器配置 | server { listen 12345; proxy_pass backend; } |
listen | 监听地址 | listen 12345 |
proxy_pass | 代理到上游 | proxy_pass backend |
| 特性 | TCP 代理 | UDP 代理 |
|---|---|---|
| 协议 | TCP | UDP |
| 连接 | 面向连接 | 无连接 |
| 可靠性 | 可靠 | 不可靠 |
| 顺序 | 有序 | 无序 |
| 流量控制 | 支持 | 不支持 |
| 拥塞控制 | 支持 | 不支持 |