46 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HTTPUpgrade
一个实现了类似于 WebSocket 进行 HTTP 1.1 升级请求和响应的协议,这使得它可以像 WebSocket 一样可以被CDN或者Nginx进行反代但无需实现 WebSocket 协议的其他部分,所以具有更高的效率。
其设计不推荐单独使用而是和TLS等安全协议一起工作。
## HttpUpgradeObject
`HttpUpgradeObject` 对应传输配置的 `httpupgradeSettings` 项。
```json
{
"acceptProxyProtocol": false,
"path": "/",
"host": "xray.com"
"headers": {
"key": "value"
}
}
```
> `acceptProxyProtocol`: true | false
仅用于 inbound指示是否接收 PROXY protocol。
[PROXY protocol](https://www.haproxy.org/download/2.2/doc/proxy-protocol.txt) 专用于传递请求的真实来源 IP 和端口,**若你不了解它,请先忽略该项**。
常见的反代软件(如 HAProxy、Nginx都可以配置发送它VLESS fallbacks xver 也可以发送它。
填写 `true` 时,最底层 TCP 连接建立后,请求方必须先发送 PROXY protocol v1 或 v2否则连接会被关闭。
> `path`: string
HTTPUpgrade 所使用的 HTTP 协议路径,默认值为 `"/"`
如果客户端路径中包含 `ed` 参数(如 ```/mypath?ed=2560```),将会启用 `Early Data` 以降低延迟,其值为首包长度阈值。如果首包长度超过此值,就不会启用 `Early Data`。最大值为8192建议的值为2560。
> `host`: string
HTTPUpgrade 的HTTP请求中所发送的Host默认值为空。若服务端值为空时不验证客户端发送来的Host值。若服务端指定了值客户端发送来的Host值需一致才能连接成功。
> `headers`: map \{string: string\}
自定义 HTTP 头,一个键值对,每个键表示一个 HTTP 头的名称,对应的值是字符串。
当同时在此处与 ```"host"``` 设置 Host 时,将会使用 ```"host"``` 的值。