Warning
This translation was modified on 16 July 2024 and an updated version (29 July 2024) is available on the source page. View the original page
HTTPUpgrade
Это протокол, реализующий запросы и ответы на обновление HTTP 1.1, подобно WebSocket. Это позволяет ему, как и WebSocket, быть проксируемым CDN или Nginx, но без необходимости реализации других частей протокола WebSocket, что делает его более эффективным.
Его дизайн не рекомендуется для самостоятельного использования, а лучше всего работает в сочетании с TLS.
HttpUpgradeObject
HttpUpgradeObject
соответствует пункту httpupgradeSettings
в настройках передачи.
{
"acceptProxyProtocol": false,
"path": "/",
"host": "xray.com",
"headers": {
"key": "value"
}
}
acceptProxyProtocol
: true | false
Используется только для входящих соединений и указывает, принимать ли протокол PROXY.
PROXY protocol предназначен для передачи реального IP-адреса и порта запроса. Если вы не знакомы с ним, проигнорируйте этот пункт.
Распространенные программы для reverse прокси (например, HAProxy, Nginx) и VLESS fallbacks xver могут быть настроены для его включения.
При установке значения true
, после установления TCP-соединения на самом нижнем уровне, запрашивающая сторона должна сначала отправить PROXY protocol v1 или v2, в противном случае соединение будет закрыто.
path
: string
HTTP-путь, используемый HTTPUpgrade, по умолчанию "/"
.
Если в пути клиента содержится параметр ed
(например, /mypath?ed=2560
), будет активирована функция Early Data
для уменьшения задержки, ее значение - порог длины первого пакета. Если длина первого пакета превышает это значение, Early Data
не будет активирована. Рекомендуемое значение - 2560.
host
: string
Хост, отправляемый в HTTP-запросе HTTPUpgrade, по умолчанию пустой. Если значение на стороне сервера пустое, значение хоста, отправляемое клиентом, не проверяется.
Когда на стороне сервера указано это значение или в headers
указан хост, будет проверено соответствие хоста запроса клиента.
Приоритет выбора хоста, отправляемого клиентом: host
> headers
> address
headers
: map {string: string}
Пользовательские HTTP-заголовки, пара ключ-значение, где каждый ключ представляет имя HTTP-заголовка, а соответствующее значение - строка.
По умолчанию пустое.