<!-- review: finished -->

<a id="stream-proxy"></a>

# Proxy

允许通过 TCP、UDP 和 UNIX 域套接字代理数据流。

<a id="configuration-example-65"></a>

## 配置示例

```nginx
server {
    listen 127.0.0.1:12345;
    proxy_pass 127.0.0.1:8080;
}

server {
    listen 12345;
    proxy_connect_timeout 1s;
    proxy_timeout 1m;
    proxy_pass example.com:12345;
}

server {
    listen 53 udp reuseport;
    proxy_timeout 20s;
    proxy_pass dns.example.com:53;
}

server {
    listen [::1]:12345;
    proxy_pass unix:/tmp/stream.socket;
}
```

<a id="directives-74"></a>

## 指令

<a id="index-0"></a>

<a id="s-proxy-bind"></a>

### proxy_bind

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_bind` address [`transparent`] | `off`;   |
|--------------------------------------------------------------------------------------|-------------------------------------------------|
| 默认值                                                                                  | —                                               |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                                  |

使到代理服务器的出站连接源自指定的本地 IP 地址。参数值可以包含变量。特殊值 `off` 取消从上一级配置继承的 proxy_bind 指令的效果,允许系统自动分配本地 IP 地址。

`transparent` 参数允许到代理服务器的出站连接源自非本地 IP 地址,例如,来自客户端的真实 IP 地址:

```nginx
proxy_bind $remote_addr transparent;
```

要使此参数生效,
Angie 工作进程通常需要以
[超级用户](https://cn.angie.software//angie/docs/configuration/modules/core.md#user) 权限运行。
在 Linux 上,这不是必需的:
如果指定了 `transparent` 参数,
工作进程会从主进程继承 CAP_NET_RAW 能力。

#### NOTE
还应配置内核路由表
以拦截来自代理服务器的网络流量。

<a id="index-1"></a>

<a id="s-proxy-buffer-size"></a>

### proxy_buffer_size

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_buffer_size` size;   |
|--------------------------------------------------------------------------------------|-----------------------------|
| 默认值                                                                                  | `proxy_buffer_size 16k;`    |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server              |

设置用于从代理服务器读取数据的缓冲区大小。同时设置用于从客户端读取数据的缓冲区大小。

<a id="index-2"></a>

<a id="s-proxy-connect-timeout"></a>

### proxy_connect_timeout

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_connect_timeout` time;   |
|--------------------------------------------------------------------------------------|---------------------------------|
| 默认值                                                                                  | `proxy_connect_timeout 60s;`    |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                  |

定义与代理服务器建立连接的超时时间。

<a id="index-3"></a>

<a id="s-proxy-connection-drop"></a>

### proxy_connection_drop

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_connection_drop` time | `on` | `off`;   |
|--------------------------------------------------------------------------------------|------------------------------------------------|
| 默认值                                                                                  | `proxy_connection_drop off;`                   |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                                 |

在代理服务器从组中移除或被 [重新解析](https://cn.angie.software//angie/docs/configuration/modules/http/http_upstream.md#reresolve) 进程或 [API 命令](https://cn.angie.software//angie/docs/configuration/modules/http/http_api.md#api-config-methods) `DELETE` 标记为永久不可用后,启用终止到该代理服务器的所有会话。

当处理客户端或代理服务器的下一个读取或写入事件时,会话将被终止。

设置 time 启用会话终止 [超时](https://cn.angie.software//angie/docs/configuration/configfile.md#syntax);
设置为 `on` 时,会话立即断开。

<a id="index-4"></a>

<a id="s-proxy-download-rate"></a>

### proxy_download_rate

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_download_rate` rate;   |
|--------------------------------------------------------------------------------------|-------------------------------|
| 默认值                                                                                  | `proxy_download_rate 0;`      |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                |

限制从代理服务器读取数据的速度。`rate` 以每秒字节数指定。

| `0`   | 禁用速率限制   |
|-------|----------|

#### NOTE
限制是针对每个连接设置的,因此如果 Angie 同时打开两个到代理服务器的连接,总速率将是指定限制的两倍。

参数值可以包含变量。在需要根据特定条件限制速率的情况下,这可能很有用:

```nginx
map $slow $rate {
    1     4k;
    2     8k;
}

proxy_download_rate $rate;
```

<a id="index-5"></a>

<a id="s-proxy-half-close"></a>

### proxy_half_close

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_half_close` `on` | `off`;   |
|--------------------------------------------------------------------------------------|------------------------------------|
| 默认值                                                                                  | `proxy_half_close off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                     |

启用或禁用独立关闭 TCP 连接的每个方向("TCP 半关闭")。如果启用,TCP 代理将保持到两端都关闭连接为止。

<a id="index-6"></a>

<a id="s-proxy-next-upstream"></a>

### proxy_next_upstream

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_next_upstream` `on` | `off`;   |
|--------------------------------------------------------------------------------------|---------------------------------------|
| 默认值                                                                                  | `proxy_next_upstream on;`             |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                        |

当无法与代理服务器建立连接时,确定是否将客户端连接传递给 [上游池](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream) 中的下一个服务器。

将连接传递给下一个服务器可以通过 [尝试次数](#s-proxy-next-upstream-tries) 和 [时间](#s-proxy-next-upstream-timeout) 进行限制。

<a id="index-7"></a>

<a id="s-proxy-next-upstream-timeout"></a>

### proxy_next_upstream_timeout

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_next_upstream_timeout` time;   |
|--------------------------------------------------------------------------------------|---------------------------------------|
| 默认值                                                                                  | `proxy_next_upstream_timeout 0;`      |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                        |

限制将连接传递给 [下一个](#s-proxy-next-upstream) 服务器的允许时间。

| `0`   | 关闭此限制   |
|-------|---------|

<a id="index-8"></a>

<a id="s-proxy-next-upstream-tries"></a>

### proxy_next_upstream_tries

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_next_upstream_tries` number;   |
|--------------------------------------------------------------------------------------|---------------------------------------|
| 默认值                                                                                  | `proxy_next_upstream_tries 0;`        |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                        |

限制将连接传递给 [下一个](#s-proxy-next-upstream) 服务器的可能尝试次数。

| `0`   | 关闭此限制   |
|-------|---------|

<a id="index-9"></a>

<a id="s-proxy-pass"></a>

### proxy_pass

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_pass` address;   |
|--------------------------------------------------------------------------------------|-------------------------|
| 默认值                                                                                  | —                       |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | server                  |

设置代理服务器的地址。`address` 可以指定为域名或 IP 地址,以及端口:

```nginx
proxy_pass localhost:12345;
```

或作为 UNIX 域套接字路径:

```nginx
proxy_pass unix:/tmp/stream.socket;
```

如果域名解析为多个地址,所有地址将以轮询方式使用。此外,地址可以指定为 [服务器组](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream)。

地址也可以使用变量指定:

```nginx
proxy_pass $upstream;
```

在这种情况下,在描述的 [服务器组](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#stream-upstream) 中搜索服务器名称,如果未找到,则使用 [resolver](https://cn.angie.software//angie/docs/configuration/modules/stream/index.md#s-resolver) 确定。

<a id="index-10"></a>

<a id="s-proxy-protocol"></a>

### proxy_protocol

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_protocol` `on` | `off`;   |
|--------------------------------------------------------------------------------------|----------------------------------|
| 默认值                                                                                  | `proxy_protocol off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                   |

为到代理服务器的连接启用 [PROXY 协议](http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)。

<a id="index-11"></a>

<a id="s-proxy-protocol-version"></a>

### proxy_protocol_version

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_protocol_version` `1` | `2`;   |
|--------------------------------------------------------------------------------------|---------------------------------------|
| 默认值                                                                                  | `proxy_protocol_version 1;`           |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                        |

设置用于到代理服务器的连接的 PROXY 协议版本。该设置在启用 [proxy_protocol](#s-proxy-protocol) 时生效。版本 2 允许发送由 [proxy_protocol_tlv](#s-proxy-protocol-tlv) 指令配置的 TLV。

<a id="index-12"></a>

<a id="s-proxy-protocol-tlv"></a>

### proxy_protocol_tlv

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_protocol_tlv` name value;   |
|--------------------------------------------------------------------------------------|------------------------------------|
| 默认值                                                                                  | —                                  |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                     |

向发送到代理服务器的 PROXY 协议 v2 头添加 TLV。value 可以包含变量。name 可以是 TLV 类型名称或其数字值;在后一种情况下,值以十六进制指定,必须以 0x 开头。对于 SSL TLV,使用 `ssl_` 前缀;特殊的 `ssl_verify` 名称设置 SSL TLV 的验证字段。该指令仅在 [proxy_protocol_version](#s-proxy-protocol-version) 设置为 `2` 时使用。

<a id="index-13"></a>

<a id="s-proxy-requests"></a>

### proxy_requests

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_requests` number;   |
|--------------------------------------------------------------------------------------|----------------------------|
| 默认值                                                                                  | `proxy_requests 0;`        |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server             |

设置客户端数据报的数量,达到该数量时,客户端与现有 UDP 流会话之间的绑定将被断开。在接收到指定数量的数据报后,来自同一客户端的下一个数据报将启动新会话。当所有客户端数据报都传输到代理服务器并接收到预期的 [响应数量](#s-proxy-responses) 时,或者当达到 [超时](#s-proxy-timeout) 时,会话终止。

<a id="index-14"></a>

<a id="s-proxy-responses"></a>

### proxy_responses

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_responses` number;   |
|--------------------------------------------------------------------------------------|-----------------------------|
| 默认值                                                                                  | —                           |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server              |

当使用 [UDP](https://cn.angie.software//angie/docs/configuration/modules/stream/index.md#stream-protocol) 协议时,设置期望从代理服务器响应客户端数据报的数据报数量。该数字作为会话终止的提示。默认情况下,数据报的数量不受限制。

如果指定为零值,则不期望响应。但是,如果收到响应且会话仍未结束,则将处理该响应。

<a id="index-15"></a>

<a id="s-proxy-socket-keepalive"></a>

### proxy_socket_keepalive

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_socket_keepalive` `on` | `off`;   |
|--------------------------------------------------------------------------------------|------------------------------------------|
| 默认值                                                                                  | `proxy_socket_keepalive off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                           |

为到代理服务器的出站连接配置"TCP keepalive"行为。

| `off`   | 默认情况下,套接字使用操作系统的设置。        |
|---------|----------------------------|
| `on`    | 为套接字启用 SO_KEEPALIVE 套接字选项。 |

<a id="index-16"></a>

<a id="s-proxy-ssl"></a>

### proxy_ssl

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl` `on` | `off`;   |
|--------------------------------------------------------------------------------------|-----------------------------|
| 默认值                                                                                  | `proxy_ssl off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server              |

为到代理服务器的连接启用 SSL/TLS 协议。

<a id="index-17"></a>

<a id="s-proxy-ssl-certificate"></a>

### proxy_ssl_certificate

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_certificate` file [file];   |
|--------------------------------------------------------------------------------------|----------------------------------------|
| 默认值                                                                                  | —                                      |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                         |

指定一个包含 PEM 格式证书的文件,用于向代理服务器进行身份验证。文件名中可以使用变量。

当启用 [proxy_ssl_ntls](#s-proxy-ssl-ntls) 时,该指令接受两个参数而不是一个:

```nginx
server {
    proxy_ssl_ntls  on;

    proxy_ssl_certificate      sign.crt enc.crt;
    proxy_ssl_certificate_key  sign.key enc.key;

    proxy_ssl_ciphers "ECC-SM2-WITH-SM4-SM3:ECDHE-SM2-WITH-SM4-SM3:RSA";

    proxy_pass backend:12345;
}
```

<a id="index-18"></a>

<a id="s-proxy-ssl-certificate-key"></a>

### proxy_ssl_certificate_key

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_certificate_key` file [file];   |
|--------------------------------------------------------------------------------------|--------------------------------------------|
| 默认值                                                                                  | —                                          |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                             |

指定一个包含 PEM 格式私钥的文件,用于向代理服务器进行身份验证。文件名中可以使用变量。

当启用 [proxy_ssl_ntls](#s-proxy-ssl-ntls) 时,该指令接受两个参数而不是一个:

```nginx
server {
    proxy_ssl_ntls  on;

    proxy_ssl_certificate      sign.crt enc.crt;
    proxy_ssl_certificate_key  sign.key enc.key;

    proxy_ssl_ciphers "ECC-SM2-WITH-SM4-SM3:ECDHE-SM2-WITH-SM4-SM3:RSA";

    proxy_pass backend:12345;
}
```

<a id="index-19"></a>

<a id="s-proxy-ssl-ciphers"></a>

### proxy_ssl_ciphers

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_ciphers` ciphers;   |
|--------------------------------------------------------------------------------------|--------------------------------|
| 默认值                                                                                  | `proxy_ssl_ciphers DEFAULT;`   |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                 |

指定向代理服务器发送请求时启用的加密套件。加密套件以 OpenSSL 库理解的格式指定。

加密套件列表取决于安装的 OpenSSL 版本。
可以使用 `openssl ciphers` 命令查看完整列表。

#### WARNING
当使用 OpenSSL 时,:samp:proxy_ssl_ciphers 指令\*不\*配置 TLS 1.3 的加密套件。要使用 OpenSSL 配置 TLS 1.3 加密套件,请使用
[proxy_ssl_conf_command](#s-proxy-ssl-conf-command) 指令,该指令是为高级 SSL 配置添加的。

- 在 LibreSSL 中,TLS 1.3 加密套件\*可以\*使用
  `proxy_ssl_ciphers` 配置。
- 在 BoringSSL 中,无法配置 TLS 1.3 加密套件。

<a id="index-20"></a>

<a id="s-proxy-ssl-conf-command"></a>

### proxy_ssl_conf_command

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_conf_command` name value;   |
|--------------------------------------------------------------------------------------|----------------------------------------|
| 默认值                                                                                  | —                                      |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                         |

在与代理服务器建立连接时设置任意 OpenSSL 配置 [命令](https://docs.openssl.org/master/man3/SSL_CONF_cmd/)。

#### NOTE
当使用 OpenSSL 1.0.2 或更高版本时支持该指令。
要使用 OpenSSL 配置 TLS 1.3 加密套件,请使用 `ciphersuites` 命令。

可以在同一级别指定多个 proxy_ssl_conf_command 指令。当且仅当当前级别没有定义 proxy_ssl_conf_command 指令时,这些指令才从上一级配置继承。

#### WARNING
请注意,直接配置 OpenSSL 可能会导致意外行为。

<a id="index-21"></a>

<a id="s-proxy-ssl-crl"></a>

### proxy_ssl_crl

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_crl` file;   |
|--------------------------------------------------------------------------------------|-------------------------|
| 默认值                                                                                  | —                       |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server          |

指定一个包含 PEM 格式吊销证书(CRL)的文件,用于 [验证](#s-proxy-ssl-verify) 代理服务器的证书。

<a id="index-22"></a>

<a id="s-proxy-ssl-name"></a>

### proxy_ssl_name

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_name` name;                |
|--------------------------------------------------------------------------------------|---------------------------------------|
| 默认值                                                                                  | `proxy_ssl_name` 来自 `proxy_pass` 的主机; |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                        |

允许覆盖用于 [验证](#s-proxy-ssl-verify) 代理服务器证书的服务器名称,以及在与代理服务器建立连接时 [通过 SNI 传递](#s-proxy-ssl-server-name) 的服务器名称。服务器名称也可以使用变量指定。

默认情况下,使用 [proxy_pass](#s-proxy-pass) 指令指定的地址中的主机名。

<a id="index-23"></a>

<a id="s-proxy-ssl-ntls"></a>

### proxy_ssl_ntls

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_ntls` `on` | `off`;   |
|--------------------------------------------------------------------------------------|----------------------------------|
| 默认值                                                                                  | `proxy_ssl_ntls off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                   |

当使用 [TongSuo](https://github.com/Tongsuo-Project/Tongsuo) TLS 库时,启用客户端对 NTLS 的支持。

```nginx
server {
    proxy_ssl_ntls  on;

    proxy_ssl_certificate      sign.crt enc.crt;
    proxy_ssl_certificate_key  sign.key enc.key;

    proxy_ssl_ciphers "ECC-SM2-WITH-SM4-SM3:ECDHE-SM2-WITH-SM4-SM3:RSA";

    proxy_pass backend:12345;
}
```

#### NOTE
Angie 必须使用 `--with-ntls` 配置参数构建,并使用相应的支持 NTLS 的 SSL 库

```default
./configure --with-openssl=../Tongsuo-8.3.0 \
            --with-openssl-opt=enable-ntls  \
            --with-ntls
```

<a id="index-24"></a>

<a id="s-proxy-ssl-password-file"></a>

### proxy_ssl_password_file

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_password_file` file;   |
|--------------------------------------------------------------------------------------|-----------------------------------|
| 默认值                                                                                  | —                                 |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                    |

指定一个包含 [私钥](#s-proxy-ssl-certificate-key) 密码短语的文件,每个密码短语单独占一行。加载密钥时依次尝试这些密码短语。

<a id="index-25"></a>

<a id="s-proxy-ssl-protocols"></a>

### proxy_ssl_protocols

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_protocols` [`SSLv2`] [`SSLv3`] [`TLSv1`] [`TLSv1.1`] [`TLSv1.2`] [`TLSv1.3`];   |
|--------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
| 默认值                                                                                  | `proxy_ssl_protocols TLSv1.2 TLSv1.3;`                                                     |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                                                                             |

#### Versionchanged
在 1.2.0 版本发生变更: `TLSv1.3` 参数已添加到默认设置中。

为向代理服务器发送请求启用指定的协议。

<a id="index-26"></a>

<a id="s-proxy-ssl-server-name"></a>

### proxy_ssl_server_name

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_server_name` `on` | `off`;   |
|--------------------------------------------------------------------------------------|-----------------------------------------|
| 默认值                                                                                  | `proxy_ssl_server_name off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                          |

启用或禁用在与代理服务器建立连接时,通过
[服务器名称指示](http://en.wikipedia.org/wiki/Server_Name_Indication)
TLS 扩展
(SNI,
[RFC 6066](https://datatracker.ietf.org/doc/html/rfc6066.html))
传递由 [proxy_ssl_name](#s-proxy-ssl-name) 指令指定的服务器名称。

<a id="index-27"></a>

<a id="s-proxy-ssl-session-reuse"></a>

### proxy_ssl_session_reuse

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_session_reuse` `on` | `off`;   |
|--------------------------------------------------------------------------------------|-------------------------------------------|
| 默认值                                                                                  | `proxy_ssl_session_reuse on;`             |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                            |

决定在与代理服务器工作时是否可以重用 SSL 会话。如果日志中出现 "SSL3_GET_FINISHED:digest check failed" 错误,请尝试禁用会话重用。

<a id="index-28"></a>

<a id="s-proxy-ssl-trusted-certificate"></a>

### proxy_ssl_trusted_certificate

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_trusted_certificate` file;   |
|--------------------------------------------------------------------------------------|-----------------------------------------|
| 默认值                                                                                  | —                                       |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                          |

指定一个包含 PEM 格式受信任 CA 证书的文件,用于 [验证](#s-proxy-ssl-verify) 代理服务器的证书。

<a id="index-29"></a>

<a id="s-proxy-ssl-verify"></a>

### proxy_ssl_verify

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_verify` `on` | `off`;   |
|--------------------------------------------------------------------------------------|------------------------------------|
| 默认值                                                                                  | `proxy_ssl_verify off;`            |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                     |

启用或禁用对代理服务器证书的验证。

<a id="index-30"></a>

<a id="s-proxy-ssl-verify-depth"></a>

### proxy_ssl_verify_depth

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_ssl_verify_depth` number;   |
|--------------------------------------------------------------------------------------|------------------------------------|
| 默认值                                                                                  | `proxy_ssl_verify_depth 1;`        |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                     |

设置代理服务器证书链中的验证深度。

<a id="index-31"></a>

<a id="s-proxy-timeout"></a>

### proxy_timeout

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_timeout` time;   |
|--------------------------------------------------------------------------------------|-------------------------|
| 默认值                                                                                  | `proxy_timeout 10m;`    |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server          |

设置客户端或代理服务器连接上两次连续读或写操作之间的超时时间。如果在此时间内没有数据传输,连接将被关闭。

<a id="index-32"></a>

<a id="s-proxy-upload-rate"></a>

### proxy_upload_rate

| [语法](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)   | `proxy_upload_rate` rate;   |
|--------------------------------------------------------------------------------------|-----------------------------|
| 默认值                                                                                  | `proxy_upload_rate 0;`      |
| [上下文](https://cn.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server              |

限制从客户端读取数据的速度。速率以每秒字节数指定。

| `0`   | 禁用速率限制   |
|-------|----------|

#### NOTE
该限制是针对每个连接设置的,因此如果客户端同时打开两个连接,总速率将是指定限制的两倍。

参数值可以包含变量。这在需要根据特定条件限制速率的情况下可能很有用:

```nginx
map $slow $rate {
    1     4k;
    2     8k;
}

proxy_upload_rate $rate;
```
