Pass#

允许将已接受的连接直接传递到在 HTTP、Stream 或 Mail 模块中配置的任何监听套接字。

该模块允许基于 SNI 执行选择性的 SSL 终止。

当 从源代码构建 时,该模块默认会与 Stream 模块一起构建(Stream 模块通过 --with-stream 启用); 可以通过 构建选项 --without-stream_pass_module 禁用它。

在来自 我们的软件仓库 的包和镜像中,该模块已包含在 构建中。

配置示例#

在 stream 模块处理 SSL/TLS 终止后,连接被转发到 http 模块:

stream {

    server {

        listen 8000 default_server;
        ssl_preread on;
        # ...
    }

    server {

        listen 8000;
        server_name foo.example.com;
        pass 127.0.0.1:8001; # to HTTP
    }

    server {

        listen 8000;
        server_name bar.example.com;
        # ...
    }
}

http {

    server {

        listen 8001 ssl;
        # ...

        location / {

            root html;
        }
    }
}

指令#

pass#

Syntax

pass address;

默认

—

Context

server

该指令设置客户端连接应传递到的服务器地址。address 可以作为 IP 地址和端口给出:

pass 127.0.0.1:12345;

或者作为 UNIX 域套接字的路径:

pass unix:/tmp/stream.socket;

此外,address 也可以用变量设置:

pass $upstream;