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

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

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

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

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

Символы, которые вы можете использовать в атрибуте имени, ограничены: A-Z0-9._\-$%.

Никто Да
Порт

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

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

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

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

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

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

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

Никто Нет
Сшивание OCSP

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

Когда включено сшивание OCSP , Edge, действующий как сервер TLS для одностороннего TLS, может напрямую запрашивать ответчик OCSP, а затем кэшировать ответ. Затем Edge возвращает этот ответ клиенту TLS или сшивает его как часть установления связи TLS. Дополнительные сведения см. в разделе Включение сшивания OCSP на вашем сервере .

TLS должен быть включен, чтобы включить сшивание OCSP. Установите для on . Значение по умолчанию off .

выключенный Нет
HostAliases
HostAlias

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

Необходимо создать запись 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-адрес каждого маршрутизатора и порт виртуального хоста.

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

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

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

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

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

Никто Все интерфейсы
RetryOptions Доступно для Edge 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 pass-thru для обработки запросов к пограничным маршрутизаторам, маршрутизатор обрабатывает IP-адрес ELB как IP-адрес клиента, а не фактический IP-адрес клиента. Если маршрутизатору требуется истинный IP-адрес клиента, включите proxy_protocol на ELB, чтобы он передал IP-адрес клиента в TCP-пакете. На маршрутизаторе вы также должны установить для параметра <ListenOption> на виртуальном хосте значение proxy_protocol . Поскольку ELB находится в режиме TCP pass-thru, обычно вы завершаете TLS на маршрутизаторе. Поэтому обычно вы настраиваете виртуальный хост только для использования proxy_protocol , когда вы также настраиваете его для использования TLS.

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

Например:

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

Чтобы позже отключить <ListenOption> , обновите виртуальный хост и исключите тег <ListenOptions> из обновления.

SSLИнформация
Включено

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

Для облака : у вас должен быть сертификат, подписанный доверенным лицом, таким как Symantec или VeriSign. Вы не можете использовать самозаверяющий сертификат или конечные сертификаты, подписанные самозаверяющим ЦС.

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

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

Имя хранилища ключей в 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 Нет
Усебуилтинфритриалсерт Доступно только для Edge Cloud.
Усебуилтинфритриалсерт

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

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

См . Определение виртуального хоста, использующего бесплатный пробный сертификат и ключ Apigee .

ЛОЖЬ Нет
Распространение TLSInformation Доступно только в альфа-версии для Edge Cloud.
ConnectionProperties

Включает сбор информации о соединении TLS с помощью Edge. Затем эта информация доступна в виде переменных потока в прокси-сервере API. Дополнительную информацию см. в разделе Доступ к информации о соединении TLS в прокси-сервере API .

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

Включает захват сведений о сертификате клиента, полученных Edge в двустороннем TLS. Затем эта информация доступна в виде переменных потока в прокси-сервере API. Дополнительную информацию см. в разделе Доступ к информации о соединении TLS в прокси-сервере API .

ЛОЖЬ Нет
Характеристики Доступно для Edge 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.

ВЫСОКАЯ:!aNULL:

!MD5:

!ДХ+3DES:

!kEDH

Нет
ssl_protocols

Доступно только для Edge для частного облака.

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

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

Укажите разделенный пробелами список протоколов TLS в виде:

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

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

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

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