You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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-заголовка, а значение представляет собой массив.