Справочник по свойствам виртуального хоста

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Представление виртуального хоста

XML-объект, используемый для определения виртуального хоста, зависит от вашей версии Edge: облачная или частная облачная среда.

Если вы являетесь клиентом частного облака, вам необходимо убедиться, что вы используете правильный XML-код для вашей версии Edge.

Облачные и частные облачные сервисы 4.17.01 и более поздние версии

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <BaseUrl>http://myCo.com</BaseUrl>
    <OCSPStapling>offOn</OCSPStapling>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    </Interfaces>
    <RetryOptions>
        <RetryOption>option</RetryOption>
    </RetryOptions>
    <ListenOptions>
        <ListenOption>option</ListenOption>
    </ListenOptions>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <!-- UseBuiltInFreeTrialCert is for Edge Cloud only -->
    <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert>
    <PropagateTLSInformation>
        <!-- PropagateTLSInformation is Alpha in the Cloud only -->
        <ConnectionProperties>trueFalse</ConnectionProperties>
        <ClientProperties>trueFalse</ClientProperties>
    </PropagateTLSInformation>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <!-- ssl_protocols is Private Cloud only -->
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Частное облако 4.16.01–4.16.09

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Частное облако 4.15.07 и более ранние версии

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>keystore</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>truststore</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
        <Ciphers>
             <Cipher>cipher</Cipher>
             <Cipher>cipher</Cipher>
         </Ciphers>
         <Protocols>
             <Protocol>protocol</Protocol>
             <Protocol>protocol</Protocol>
         </Protocols>
    </SSLInfo>
</VirtualHost>

Свойства конфигурации виртуального хоста

В таблице ниже перечислены свойства, используемые для настройки виртуального хоста:

Характеристики Описание По умолчанию Необходимый
Виртуальный хост

Указывает имя виртуального хоста. Это имя используется для ссылки на виртуальный хост при настройке API-прокси.

В атрибуте name можно использовать следующие символы: A-Z, 0-9, _\-$%.

Никто Да
Порт

Указывает номер порта, используемого виртуальным хостом. Убедитесь, что порт открыт на пограничном маршрутизаторе.

Если вы указываете порт в элементе hostalias , то номер порта, указанный в <Port> ort> должен совпадать с ним.

Для облачных сервисов : при создании виртуального хоста необходимо указать порт 443. Если этот параметр не указан, по умолчанию устанавливается порт 443. Если у вас уже есть виртуальный хост, использующий порт, отличный от 443, изменить его невозможно.

Для версий Private Cloud с 4.16.01 по 4.17.05: При создании виртуального хоста вы указываете порт маршрутизатора, используемый виртуальным хостом. Например, порт 9001. По умолчанию маршрутизатор работает от имени пользователя «apigee», который не имеет доступа к привилегированным портам, обычно к портам 1024 и ниже. Если вы хотите создать виртуальный хост, который привязывает маршрутизатор к защищенному порту, вам необходимо настроить маршрутизатор для работы от имени пользователя, имеющего доступ к этим портам. См. раздел «Настройка виртуального хоста» для получения дополнительной информации.

Для версий Private Cloud до 4.16.01: Маршрутизатор может принимать только одно HTTPS-соединение на каждый виртуальный хост, на определенном порту, с указанным сертификатом. Следовательно, несколько виртуальных хостов не могут использовать один и тот же номер порта, если завершение TLS-соединения происходит на маршрутизаторе на указанном порту.

Никто Да
BaseUrl Переопределяет URL-адрес, отображаемый пользовательским интерфейсом Edge для прокси-сервера API, развернутого на виртуальном хосте. Полезно, если перед маршрутизаторами Edge установлен внешний балансировщик нагрузки. Дополнительные сведения см. в разделе « Настройка доступа TLS к API для частного облака» .

Значение параметра BaseUrl должно включать протокол (например, "http://" или "https://").

Никто Нет
OCSPStapling

Клиент OCSP (Online Certificate Status Protocol) отправляет запрос на проверку статуса ответчику OCSP, чтобы определить, действителен ли TLS-сертификат. Ответ указывает, действителен ли TLS-сертификат и не отозван ли он.

При включении функция OCSP Stapling позволяет Edge, выступающему в качестве TLS-сервера для одностороннего TLS, напрямую запрашивать ответ у OCSP-ответчика и кэшировать его. Затем Edge возвращает этот ответ TLS-клиенту, или «прикрепляет» его, в рамках рукопожатия TLS. См. раздел «Включение OCSP Stapling на вашем сервере» для получения дополнительной информации.

Для включения OCSP-привязки необходимо включить TLS. on значение «вкл.», чтобы включить. Значение по умолчанию — off .».

выключенный Нет
Псевдонимы хостов
HostAlias

Общедоступное DNS-имя виртуального хоста на маршрутизаторе, при необходимости включающее номер порта. Комбинация имени псевдонима хоста и номера порта для виртуального хоста должна быть уникальной для всех виртуальных хостов в установке Edge. Это означает, что несколько виртуальных хостов могут использовать один и тот же номер порта, если у них разные псевдонимы хостов.

Необходимо создать запись DNS и запись CNAME, соответствующие псевдониму хоста, при этом псевдоним хоста должен соответствовать строке, передаваемой клиентом в заголовке Host .

Номер порта в HostAlias ​​является необязательным. Если вы указываете порт как часть псевдонима хоста, вы также должны указать тот же порт, используя элемент <Port> . Или вы можете указать два элемента HostAlias : один с номером порта, а другой без него.

В одном определении виртуального хоста может быть несколько определений HostAlias , соответствующих нескольким записям DNS для виртуального хоста, но не для нескольких портов. Если вам нужно несколько портов, создайте несколько определений виртуальных хостов с разными портами.

В псевдоним хоста можно включить символ подстановки "*". Символ подстановки "*" может находиться только в начале (перед первой точкой) псевдонима хоста и не может сочетаться с другими символами. Например, *.example.com . TLS-сертификат для виртуального хоста должен содержать соответствующий символ подстановки в имени CN сертификата. Например, *.example.com . Использование символа подстановки в псевдониме виртуального хоста позволяет API-прокси обрабатывать вызовы, адресованные нескольким поддоменам, таким как alpha.example.com , beta.example.com или live.example.com . Использование псевдонима с символом подстановки также помогает использовать меньше виртуальных хостов в среде, чтобы оставаться в рамках лимитов продукта , поскольку виртуальный хост с символом подстановки считается только одним виртуальным хостом.

Для облачных сервисов : если у вас уже есть виртуальный хост, использующий порт, отличный от 443, вы не можете добавить или удалить псевдоним хоста.

Для частного облака: если вы задаете псевдоним хоста, используя IP-адреса ваших маршрутизаторов, а не записи DNS, добавьте отдельный псевдоним хоста для каждого маршрутизатора, указав IP-адрес каждого маршрутизатора и порт виртуального хоста.

Никто Да
Интерфейсы Доступно только для периферийных устройств в частном облаке.
Интерфейс

Указывает сетевые интерфейсы, к которым должен быть привязан port . Если этот параметр опущен, порт будет привязан ко всем интерфейсам.

Например, чтобы указать, что порт должен быть привязан только к en0:

<Interfaces>
  <Interface>en0</Interface>
</Interfaces>

Определите доступные в вашей системе сетевые интерфейсы, выполнив команду "ifconfig -a".

Никто Все интерфейсы
RetryOptions Доступно для Edge Cloud и Private Cloud версии 4.18.01 и более поздних.
RetryOption

Настройте реакцию маршрутизатора на сбой обработчика сообщений для этого виртуального хоста.

С помощью параметра <RetryOption> можно указать несколько значений. Допустимые значения:

off Отключает повторную попытку, и виртуальный хост возвращает код ошибки при получении запроса.
http_599 (По умолчанию) Если маршрутизатор получает HTTP-ответ 599 от обработчика сообщений, он перенаправляет запрос следующему обработчику сообщений.

HTTP 599 — это специальный код ответа, генерируемый обработчиком сообщений при его завершении работы. Обработчик сообщений пытается выполнить все существующие запросы, но для любых новых запросов он отвечает кодом HTTP 599, сигнализируя маршрутизатору о необходимости повторной обработки запроса следующим обработчиком сообщений.

error Если при установлении соединения с обработчиком сообщений, передаче ему запроса или чтении заголовка ответа произошла ошибка, маршрутизатор перенаправляет запрос следующему обработчику сообщений.
timeout Если при установлении соединения с обработчиком сообщений, передаче ему запроса или чтении заголовка ответа происходит превышение времени ожидания, маршрутизатор перенаправляет запрос следующему обработчику сообщений.
invalid_header Если обработчик сообщений вернул пустой или недействительный ответ, маршрутизатор перенаправляет запрос следующему обработчику сообщений.
http_ XXX Если обработчик сообщений вернул ответ с HTTP-кодом XXX , маршрутизатор перенаправляет запрос следующему обработчику сообщений.

Если вы укажете несколько значений, маршрутизатор использует логическое ИЛИ для их объединения.

Например:

<RetryOptions>
  <RetryOption>http_599</RetryOption>
  <RetryOption>error</RetryOption>
  <RetryOption>timeout</RetryOption>
  <RetryOption>invalid_header</RetryOption>
</RetryOptions>
ListenOptions Доступно для Private Cloud 4.18.01 и более поздних версий, а также для Edge Cloud (при обращении в службу поддержки Apigee Edge) .
ListenOption

Если вы используете ELB в режиме сквозной передачи TCP для обработки запросов к пограничным маршрутизаторам, маршрутизатор будет рассматривать IP-адрес ELB как IP-адрес клиента, а не как фактический IP-адрес клиента. Если маршрутизатору требуется истинный IP-адрес клиента, включите proxy_protocol на ELB, чтобы он передавал IP-адрес клиента в TCP-пакете. На маршрутизаторе также необходимо установить параметр <ListenOption> на виртуальном хосте в значение proxy_protocol . Поскольку ELB находится в режиме сквозной передачи TCP, обычно завершение TLS происходит на маршрутизаторе. Поэтому обычно виртуальный хост настраивается на использование proxy_protocol только при настройке его на использование TLS.

Значение по умолчанию для <ListenOption> — пустая строка.

Например:

<ListenOptions>
  <ListenOption>proxy_protocol</ListenOption>
</ListenOptions>

Чтобы впоследствии отменить параметр <ListenOption> , обновите виртуальный хост и опустите тег <ListenOptions> в обновлении.

SSLInfo
Включено

Включает одностороннюю передачу TLS/SSL. Необходимо предварительно определить хранилище ключей, содержащее сертификат и закрытый ключ.

Для облачных решений : необходим сертификат, подписанный доверенной организацией, такой как Symantec или VeriSign. Нельзя использовать самоподписанные сертификаты или конечные сертификаты, подписанные самоподписанным центром сертификации.

Для облачных сервисов : если ваш существующий виртуальный хост настроен на использование порта, отличного от 443, вы не можете изменить настройку TLS. Это означает, что вы не можете изменить настройку TLS с «включено» на «выключено» или с «выключено» на «включено».

ЛОЖЬ Нет
ClientAuthEnabled Включает двусторонний, или клиентский, TLS-трафик между Edge (сервером) и приложением (клиентом), отправляющим запрос. Для включения двустороннего TLS-трафика необходимо настроить хранилище доверенных сертификатов в Edge, содержащее сертификат от TLS-клиента. ЛОЖЬ Нет
KeyStore

Название хранилища ключей в браузере Edge.

Apigee рекомендует использовать ссылку для указания имени хранилища ключей, чтобы вы могли изменить хранилище ключей без перезапуска маршрутизаторов. Дополнительные сведения см. в разделе «Параметры настройки TLS» .

Никто Да, если Enabled имеет значение true.
KeyAlias Псевдоним, указанный при загрузке сертификата и закрытого ключа в хранилище ключей. Имя псевдонима необходимо указывать буквально; использование ссылки невозможно. Дополнительные сведения см. в разделе «Параметры настройки TLS» . Никто Да, если Enabled имеет значение true.
TrustStore

Имя хранилища доверенных сертификатов на Edge, содержащего сертификат или цепочку сертификатов, используемых для двусторонней TLS-аутентификации. Обязательно, если <ClientAuthEnabled> имеет значение true.

Apigee рекомендует использовать ссылку для указания имени хранилища доверенных сертификатов, чтобы вы могли изменить его без перезапуска маршрутизаторов. Дополнительные сведения см. в разделе «Параметры настройки TLS» .

Никто Нет
Игнорировать ошибки проверки

Если значение равно true, указывает на необходимость игнорирования ошибок TLS-сертификатов. Это аналогично опции "-k" в cURL.

Этот параметр действителен при настройке TLS для целевых серверов и целевых конечных точек, а также при настройке виртуальных хостов, использующих двусторонний TLS.

При использовании с целевой конечной точкой/целевым сервером, если серверная система использует SNI и возвращает сертификат с отличительным именем субъекта (DN), не соответствующим имени хоста, игнорировать ошибку невозможно, и соединение прерывается.

ЛОЖЬ Нет
Шифры

Только для Edge for Private Cloud версии 4.15.07 и более ранних.

Указывает поддерживаемые виртуальным хостом шифры. Если шифры не указаны, будут разрешены все шифры, доступные для JVM.

Для ограничения использования шифров добавьте следующие элементы:

<Ciphers>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
Все это поддерживается JVM. Нет
Протоколы

Только для Edge for Private Cloud версии 4.15.07 и более ранних.

Указывает протоколы, поддерживаемые виртуальным хостом. Если протоколы не указаны, разрешены все протоколы, доступные для JVM.

Для ограничения протоколов добавьте следующие элементы:

<Protocols>
  <Protocol>TLSv1</Protocol>
  <Protocol>TLSv1.2</Protocol>
  <Protocol>SSLv2Hello</Protocol>
</Protocols>
Все это поддерживается JVM. Нет
UseBuiltInFreeTrialCert Доступно только для облачной среды Edge.
UseBuiltInFreeTrialCert

Если у вас есть платная учетная запись Edge for Cloud и еще нет сертификата и ключа TLS, вы можете создать виртуальный хост, используя сертификат и ключ из бесплатной пробной версии Apigee. Это означает, что вы можете создать виртуальный хост, не создавая предварительно хранилище ключей.

Сертификат для бесплатной пробной версии Apigee предназначен для домена *.apigee.net . Следовательно, <HostAlias> виртуального хоста также должен иметь формат *.apigee.net .

См. раздел «Настройка виртуального хоста с использованием сертификата и ключа бесплатной пробной версии Apigee» .

ЛОЖЬ Нет
Распространение информации TLS Доступно в альфа-версии только для граничного облачного сегмента.
Свойства подключения

Позволяет Edge получать информацию о TLS-соединении. Эта информация затем доступна в качестве переменных потока в API-прокси. Дополнительные сведения см. в разделе «Доступ к информации о TLS-соединении в API-прокси» .

ЛОЖЬ Нет
Клиентские свойства

Позволяет получать данные клиентского сертификата, захваченные Edge в двустороннем TLS-соединении. Эта информация затем становится доступна в качестве переменных потока в API-прокси. Дополнительные сведения см. в разделе «Доступ к информации о TLS-соединении в API-прокси» .

ЛОЖЬ Нет
Характеристики Доступно для Edge Cloud и Private Cloud версии 4.17.01 и более поздних.
proxy_read_timeout

Устанавливает время ожидания в секундах между обработчиками сообщений и маршрутизатором. Маршрутизатор разрывает соединение и возвращает HTTP-ответ 504, если не получает ответа от обработчика сообщений до истечения этого времени.

Значение параметра proxy_read_timeout должно быть больше целевого значения таймаута, используемого обработчиком сообщений. Это гарантирует, что маршрутизатор не выйдет из строя до того, как обработчик сообщений успеет вернуть ответ. Целевое значение таймаута по умолчанию для обработчика сообщений составляет 55 секунд (55000 миллисекунд), как определено токеном conf_http_HTTPTransport.io.timeout.millis для обработчика сообщений.

57 Нет
keepalive_timeout

Устанавливает время ожидания в секундах между клиентом и маршрутизатором, когда клиент отправляет запрос, содержащий заголовок Keep-Alive. Маршрутизатор поддерживает соединение открытым до истечения этого времени.

Маршрутизатор не разорвет соединение, если в данный момент ожидает ответа от обработчика сообщений. Тайм-аут начинается только после того, как маршрутизатор вернет ответ клиенту.

65 Нет
ssl_ciphers

Задает набор поддерживаемых виртуальным хостом алгоритмов шифрования, переопределяя алгоритмы по умолчанию, установленные на маршрутизаторе.

Укажите список шифров, разделённых двоеточием, в следующем формате:

<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property>

Информацию о синтаксисе и допустимых значениях этого токена см. на странице https://www.openssl.org/docs/man1.0.2/man1/ciphers.html . Обратите внимание, что этот токен использует имена шифров OpenSSL, такие как AES128-SHA256, а не имена шифров Java/JSSE, такие как TLS_RSA_WITH_AES_128_CBC_SHA256.

ВЫСОКИЙ:!НУЛЕВОЙ:

!MD5:

!DH+3DES:

!kEDH

Нет
ssl_protocols

Доступно только для периферийных устройств в частном облаке.

Задает поддерживаемые виртуальным хостом протоколы TLS в виде списка, разделенного пробелами, переопределяя протоколы по умолчанию, установленные на маршрутизаторе.

Примечание : Если два виртуальных хоста используют один и тот же порт, они должны установить параметр ssl_protocols на одни и те же протоколы. Это означает, что виртуальные хосты, использующие один и тот же порт, должны поддерживать абсолютно одинаковые протоколы.

Укажите список протоколов TLS, разделённых пробелами, в следующем формате:

<Property name="ssl_protocols">TLSv1 TLSv1.2</Property>
TLSv1 TLSv1.1 TLSv1.2 Нет
proxy_request_buffering

Включает (вкл.) или выключает (выкл.) буферизацию тела запроса. При включенной буферизации маршрутизатор буферизует все тело запроса перед отправкой его обработчику сообщений. В случае ошибки маршрутизатор может повторно обратиться к другому обработчику сообщений.

Если параметр «выключен», буферизация отключается, и тело запроса отправляется обработчику сообщений сразу после его получения. В случае ошибки маршрутизатор не пытается повторно отправить запрос другому обработчику сообщений.

на Нет
прокси_буферизация Включает (вкл.) или выключает (выкл.) буферизацию ответа. Когда буферизация включена, маршрутизатор буферизует ответ. Когда буферизация выключена, ответ передается клиенту синхронно, сразу после его получения маршрутизатором. на Нет