5.0 KiB
HTTP/2
Способ передачи данных на основе HTTP/2.
Он полностью реализован в соответствии со стандартом HTTP/2 и может быть перенаправлен через другие HTTP-серверы (например, Nginx).
В соответствии с рекомендациями HTTP/2, клиент и сервер должны одновременно включать TLS для нормальной работы этого способа передачи.
HTTP/2 имеет встроенное мультиплексирование, не рекомендуется включать mux.cool при использовании HTTP/2.
::: tip
Текущая версия способа передачи HTTP/2 не требует, чтобы входящее соединение (сервер) имело конфигурацию TLS.
Это позволяет в среде развертывания с разделением трафика для специальных целей использовать внешний шлюз для обработки TLS-соединения, в то время как Xray будет использоваться в качестве серверного приложения, а связь между шлюзом и Xray будет осуществляться по незашифрованному протоколу http/2, который называется h2c
.
:::
::: warning ⚠️ Если вы используете fallback, обратите внимание на следующие моменты:
- Убедитесь, что (x)tlsSettings.alpn содержит h2, иначе HTTP/2 не сможет завершить TLS-рукопожатие.
- HTTP/2 не может быть разделен по пути, рекомендуется использовать SNI-разделение. :::
HttpObject
HttpObject
соответствует элементу httpSettings
конфигурации передачи.
{
"host": ["xray.com"],
"path": "/random/path",
"read_idle_timeout": 10,
"health_check_timeout": 15,
"method": "PUT",
"headers": {
"Header": ["value"]
}
}
host
: [string]
Массив строк, каждый элемент которого является доменным именем.
Клиент будет случайным образом выбирать доменное имя из списка для связи, а сервер будет проверять, находится ли доменное имя в списке.
::: tip
Если не указать "httpSettings"
или оставить значение "host": []
пустым, то будет использоваться значение по умолчанию "www.example.com"
. Для успешного подключения значение "host"
должно быть одинаковым на обеих сторонах. "host": [""]
не является пустым значением.
:::
path
: string
HTTP-путь, начинающийся с /
, должен быть одинаковым у клиента и сервера.
Значение по умолчанию: "/"
.
read_idle_timeout
: number
Время в секундах, по истечении которого, если данные не были получены, будет выполнена проверка работоспособности.
По умолчанию проверка работоспособности не включена.
::: tip Настройка требуется только на стороне исходящего соединения (клиента). :::
::: tip Может решить некоторые проблемы с "обрывом" соединения. :::
health_check_timeout
: number
Время ожидания ответа проверки работоспособности в секундах. Если в течение этого времени проверка работоспособности не будет завершена, она будет считаться неудачной. Значение по умолчанию: 15
.
::: tip Настройка требуется только на стороне исходящего соединения (клиента). :::
method
: string
HTTP-метод. Значение по умолчанию: "PUT"
.
При настройке следует использовать значения, перечисленные здесь.
headers
: map{ string: [string] }
Пользовательские HTTP-заголовки, пара ключ-значение, где каждый ключ представляет собой имя HTTP-заголовка, а значение представляет собой массив.