TCP 代理

stream {
    upstream backend {
        server backend1.example.com:12345;
        server backend2.example.com:12345;
    }

    server {
        listen 12345;
        proxy_pass backend;
        proxy_timeout 3s;
        proxy_connect_timeout 1s;
    }
}

TCP 代理说明

  • proxy_timeout 3s:设置代理超时时间为 3 秒
  • proxy_connect_timeout 1s:设置连接超时时间为 1 秒

TCP 代理原理proxy_timeout 指令用于设置代理超时时间,proxy_connect_timeout 指令用于设置连接超时时间。

UDP 代理

stream {
    upstream dns {
        server 192.168.0.1:53;
        server 192.168.0.2:53;
    }

    server {
        listen 53 udp reuseport;
        proxy_pass dns;
        proxy_timeout 1s;
        proxy_responses 1;
        error_log /var/log/nginx/dns.log info;
    }
}

UDP 代理说明

  • proxy_timeout 1s:设置代理超时时间为 1 秒
  • proxy_responses 1:设置响应数量为 1
  • error_log /var/log/nginx/dns.log info:设置错误日志文件和日志级别

UDP 代理原理proxy_timeout 指令用于设置代理超时时间,proxy_responses 指令用于设置响应数量,error_log 指令用于设置错误日志文件和日志级别。

配置说明

指令说明示例
proxy_timeout代理超时proxy_timeout 3s
proxy_connect_timeout连接超时proxy_connect_timeout 1s
proxy_responses响应数量proxy_responses 1
error_log错误日志error_log /var/log/nginx/dns.log info

配置示例

stream {
    upstream backend {
        server backend1.example.com:12345 weight=5;
        server backend2.example.com:12345;
        server 192.0.0.1:12345 max_fails=3 fail_timeout=30s;
    }

    server {
        listen 12345;
        proxy_pass backend;
        proxy_timeout 3s;
        proxy_connect_timeout 1s;
    }
}

配置示例说明

  • weight=5:设置后端服务器的权重为 5
  • max_fails=3:设置最大失败次数为 3
  • fail_timeout=30s:设置失败超时时间为 30 秒

配置示例原理weight 指令用于设置后端服务器的权重,max_fails 指令用于设置最大失败次数,fail_timeout 指令用于设置失败超时时间。