2024-03-24 01:52:26 +08:00
|
|
|
|
# HTTPUpgrade
|
2024-03-11 13:47:09 +08:00
|
|
|
|
|
|
|
|
|
一个实现了类似于 WebSocket 进行 HTTP 1.1 升级请求和响应的协议,这使得它可以像 WebSocket 一样可以被CDN或者Nginx进行反代,但无需实现 WebSocket 协议的其他部分,所以具有更高的效率。
|
|
|
|
|
其设计不推荐单独使用,而是和TLS等安全协议一起工作。
|
|
|
|
|
|
|
|
|
|
## HttpUpgradeObject
|
|
|
|
|
|
|
|
|
|
`HttpUpgradeObject` 对应传输配置的 `httpupgradeSettings` 项。
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"acceptProxyProtocol": false,
|
|
|
|
|
"path": "/",
|
|
|
|
|
"host": "xray.com"
|
2024-03-24 01:52:26 +08:00
|
|
|
|
"headers": {
|
|
|
|
|
"key": "value"
|
|
|
|
|
}
|
2024-03-11 13:47:09 +08:00
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
> `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 协议路径,默认值为 `"/"`。
|
|
|
|
|
|
2024-03-27 13:24:20 +08:00
|
|
|
|
如果客户端路径中包含 `ed` 参数(如 ```/mypath?ed=2560```),将会启用 `Early Data` 以降低延迟,其值为首包长度阈值。如果首包长度超过此值,就不会启用 `Early Data`。最大值为8192,建议的值为2560。
|
2024-03-18 03:48:09 +08:00
|
|
|
|
|
2024-03-11 13:47:09 +08:00
|
|
|
|
> `host`: string
|
|
|
|
|
|
2024-03-27 13:24:20 +08:00
|
|
|
|
HTTPUpgrade 的HTTP请求中所发送的Host,默认值为空。若服务端值为空时,不验证客户端发送来的Host值。若服务端指定了值,客户端发送来的Host值需一致才能连接成功。
|
2024-03-24 01:52:26 +08:00
|
|
|
|
|
|
|
|
|
> `headers`: map \{string: string\}
|
|
|
|
|
|
|
|
|
|
自定义 HTTP 头,一个键值对,每个键表示一个 HTTP 头的名称,对应的值是字符串。
|
|
|
|
|
|
2024-03-27 13:28:32 +08:00
|
|
|
|
默认值为空。
|
|
|
|
|
|
2024-03-24 01:52:26 +08:00
|
|
|
|
当同时在此处与 ```"host"``` 设置 Host 时,将会使用 ```"host"``` 的值。
|