pass

'pass' 指令定义了在 NGINX stream 模块中将客户端请求路由到何处。 — NGINX Stream Core

pass
stream server
语法pass upstream_name;
默认值none
上下文stream server
模块NGINX Stream Core
参数1

说明

'pass' 指令用于在 NGINX stream 模块上下文中将客户端请求转发到指定的 upstream server,该上下文通常用于 TCP 和 UDP 流量。该指令指定一个将处理传入连接的 upstream server,从而支持负载均衡和故障转移功能。该指令可以包含选项,例如定义一个 server name 或指定端口号。 当连接匹配在 stream block 中定义的条件时,'pass' 指令会指示 NGINX 与指定的 upstream server 建立连接,并在客户端与 upstream server 之间转发数据包。这实际上使 NGINX 在 stream 流量中充当代理,提供诸如 SSL 终止和维护连接池等功能。管理员需要确保指定的 upstream server 配置正确,以避免连接失败。 该指令可以在 'stream' block 的各种上下文中使用,但主要在 'server' block 中定义,在那里指定单个 upstream 目标。这种模块化方法允许在路由和连接管理方面更灵活地工作。

配置示例

stream {
    upstream backend {
        server backend1.example.com:1234;
        server backend2.example.com:1234;
    }
    server {
        listen 1234;
        pass backend;
    }
}

确保上游服务器可访问;否则连接将失败。

避免在 HTTP 上下文中使用 'pass' 指令;它特定于 stream 上下文。

注意连接处理:NGINX 会保持连接打开以提高数据传输效率,如果未正确管理,可能会导致资源问题。