TCP 代理

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 代理可以用于负载均衡、健康检查、会话保持等。

UDP 代理

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 代理可以用于负载均衡、健康检查、会话保持等。

配置说明

指令说明示例
streamStream 上下文stream { ... }
upstream上游服务器组upstream backend { ... }
server服务器配置server { listen 12345; proxy_pass backend; }
listen监听地址listen 12345
proxy_pass代理到上游proxy_pass backend

TCP/UDP 代理对比

特性TCP 代理UDP 代理
协议TCPUDP
连接面向连接无连接
可靠性可靠不可靠
顺序有序无序
流量控制支持不支持
拥塞控制支持不支持