<!-- review: finished -->

<a id="stream-rdp-preread"></a>

# RDP Preread

在使用 RDP 协议时，此模块允许在做出负载均衡决策之前提取用于会话识别和管理的 Cookie。

当从源代码 [构建](https://cn.angie.software//angie/docs/installation/sourcebuild.md#sourcebuild) 时，需要通过 `‑‑with‑stream_rdp_preread_module` [构建选项](https://cn.angie.software//angie/docs/installation/sourcebuild.md#configure) 来启用此模块。在 [我们的仓库](https://cn.angie.software//angie/docs/installation/index.md#install-packages) 中的包和镜像中，该模块已包含在构建中。

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

## 配置示例

<a id="binding-to-the-cookie-issuing-server"></a>

### 绑定到发放 Cookie 的服务器

这使用了 [sticky](https://cn.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-sticky) 指令的 `learn` 模式：

```nginx
stream {

    rdp_preread on;

    upstream rdp {

        server 127.0.0.1:3390 sid=a;
        server 127.0.0.1:3391 sid=b;

        sticky learn lookup=$rdp_cookie create=$rdp_cookie zone=sessions:1m;
    }
}
```

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

## 指令

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

<a id="s-rdp-preread"></a>

### rdp_preread

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

控制在 [预读阶段](https://cn.angie.software//angie/docs/configuration/processing.md#stream-sessions) 从 RDP 协议 Cookie 中提取信息。
如果设置为 `on`，将在指定的上下文中填充下面列出的变量。

<a id="built-in-variables-21"></a>

## 内置变量

Cookie 值的语义取决于 RDP 协议版本。

<a id="v-rdp-cookie"></a>

### `$rdp_cookie`

整个 Cookie 值。

<a id="id5"></a>

### `$rdp_cookie_<name>`

具有指定名称的 Cookie 字段的值。
