Dokumentacja właściwości hosta wirtualnego

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Reprezentacja hosta wirtualnego

Obiekt XML, którego używasz do definiowania hosta wirtualnego, zależy od wersji Edge: Cloud lub Private Cloud.

Jeśli jesteś klientem Private Cloud, musisz używać prawidłowego pliku XML dla swojej wersji Edge.

Chmura i chmura prywatna 4.17.01 i nowsze

<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>

Private Cloud w wersjach 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>

Private Cloud w wersji 4.15.07 i starszych

<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>

Właściwości konfiguracji hosta wirtualnego

W tabeli poniżej znajdziesz właściwości, których możesz użyć do skonfigurowania hosta wirtualnego:

Właściwości Opis Domyślny Wymagane
VirtualHost

Określa nazwę hosta wirtualnego. Używasz tej nazwy do odwoływania się do hosta wirtualnego podczas konfigurowania serwera proxy interfejsu API.

Znaki, których możesz użyć w atrybucie nazwa, są ograniczone do: A-Z0-9._\-$%.

Brak Tak
Port

Określa numer portu używanego przez hosta wirtualnego. Sprawdź, czy port jest otwarty na routerze brzegowym.

Jeśli określisz port w elemencie hostalias, numer portu określony przez <Port> musi być zgodny z tym numerem.

W przypadku Cloud: podczas tworzenia hosta wirtualnego musisz określić port 443. Jeśli go pominiesz, domyślnie zostanie ustawiony port 443. Jeśli masz istniejącego hosta wirtualnego, który używa portu innego niż 443, nie możesz go zmienić.

W przypadku wersji chmury prywatnej od 4.16.01 do 4.17.05: podczas tworzenia hosta wirtualnego określasz port routera używany przez hosta wirtualnego. Na przykład port 9001. Domyślnie router działa jako użytkownik „apigee”, który nie ma dostępu do portów uprzywilejowanych, zwykle portów 1024 i niższych. Jeśli chcesz utworzyć hosta wirtualnego, który wiąże router z chronionym portem, musisz skonfigurować router tak, aby działał jako użytkownik z dostępem do tych portów. Więcej informacji znajdziesz w artykule Konfigurowanie hosta wirtualnego.

W przypadku wersji Private Cloud starszych niż 4.16.01: router może nasłuchiwać tylko 1 połączenia HTTPS na hosta wirtualnego na określonym porcie z określonym certyfikatem. Dlatego wiele hostów wirtualnych nie może używać tego samego numeru portu, jeśli zakończenie TLS następuje na routerze na określonym porcie.

Brak Tak
BaseUrl Zastępuje adres URL wyświetlany przez interfejs Edge dla proxy interfejsu API wdrożonego na hoście wirtualnym. Przydatne, gdy przed routerami brzegowymi znajduje się zewnętrzny system równoważenia obciążenia. Więcej informacji znajdziesz w artykule Konfigurowanie dostępu TLS do interfejsu API w chmurze prywatnej.

Wartość BaseUrl musi zawierać protokół (np. „http://” lub „https://”).

Brak Nie
OCSPStapling

Klient OCSP (Online Certificate Status Protocol) wysyła do serwera OCSP żądanie stanu, aby sprawdzić, czy certyfikat TLS jest ważny. Odpowiedź wskazuje, czy certyfikat TLS jest ważny i nie został unieważniony.

Gdy ta opcja jest włączona, zszywanie OCSP umożliwia Edge, który działa jako serwer TLS dla jednokierunkowego protokołu TLS, bezpośrednie wysyłanie zapytań do serwera OCSP i buforowanie odpowiedzi. Edge zwraca tę odpowiedź do klienta TLS lub dołącza ją w ramach uzgadniania połączenia TLS. Więcej informacji znajdziesz w artykule Włączanie OCSP Stapling na serwerze.

Aby włączyć dołączanie OCSP, musisz włączyć TLS. Ustaw wartość on, aby włączyć. (wartością domyślną jest off);

wył. Nie
HostAliases
HostAlias

Publicznie widoczna nazwa DNS hosta wirtualnego na routerze, opcjonalnie z numerem portu. Kombinacja nazwy aliasu hosta i numeru portu dla hosta wirtualnego musi być unikalna dla wszystkich hostów wirtualnych w instalacji Edge. Oznacza to, że wiele hostów wirtualnych może używać tego samego numeru portu, jeśli mają różne aliasy hosta.

Musisz utworzyć wpis DNS i rekord CNAME, które pasują do aliasu hosta. Alias hosta musi pasować do ciągu znaków, który klient przekazuje w nagłówku Host.

Numer portu w HostAlias jest opcjonalny. Jeśli określisz port w ramach aliasu hosta, musisz też określić ten sam port za pomocą elementu <Port>. Możesz też podać 2 elementy HostAlias, jeden z numerem portu, a drugi bez niego.

W tej samej definicji hosta wirtualnego możesz mieć wiele definicji HostAlias, które odpowiadają wielu wpisom DNS dla hosta wirtualnego, ale nie dla wielu portów. Jeśli chcesz używać wielu portów, utwórz kilka definicji hosta wirtualnego z różnymi portami.

W aliasie hosta możesz użyć symbolu wieloznacznego „*”. Symbol wieloznaczny „*” może występować tylko na początku aliasu hosta (przed pierwszą kropką „.”) i nie można go łączyć z innymi znakami. Na przykład *.example.com. Certyfikat TLS dla hosta wirtualnego musi mieć pasujący symbol wieloznaczny w nazwie CN certyfikatu. Na przykład: *.example.com. Użycie symbolu wieloznacznego w aliasie hosta wirtualnego umożliwia proxy interfejsów API obsługę wywołań kierowanych do wielu subdomen, takich jak alpha.example.com, beta.example.com lub live.example.com. Używanie aliasu z symbolem wieloznacznym pomaga też zmniejszyć liczbę hostów wirtualnych w środowisku, aby nie przekraczać limitów produktu, ponieważ host wirtualny z symbolem wieloznacznym jest liczony jako jeden host wirtualny.

W przypadku Cloud: jeśli masz istniejącego hosta wirtualnego, który używa portu innego niż 443, nie możesz dodać ani usunąć aliasu hosta.

W przypadku chmury prywatnej: jeśli alias hosta jest ustawiany za pomocą adresów IP routerów, a nie wpisów DNS, dodaj osobny alias hosta dla każdego routera, określając adres IP każdego routera i port hosta wirtualnego.

Brak Tak
Interfejsy Dostępne tylko w przypadku Edge for Private Cloud.
Interfejs

Określa interfejsy sieciowe, z którymi chcesz powiązać port. Jeśli pominiesz ten element, port będzie powiązany ze wszystkimi interfejsami.

Na przykład, aby określić powiązanie portu tylko z en0:

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

Sprawdź interfejsy dostępne w systemie, uruchamiając polecenie „ifconfig -a”.

Brak Wszystkie interfejsy
RetryOptions Dostępne w przypadku Edge Cloud i Private Cloud 4.18.01 i nowszych.
RetryOption

Skonfiguruj, jak router ma reagować w przypadku tego hosta wirtualnego, gdy procesor komunikatów przestanie działać.

Możesz podać wiele wartości, używając symbolu <RetryOption>. Prawidłowe wartości to:

off Wyłącza ponawianie, a host wirtualny zwraca kod błędu po otrzymaniu żądania.
http_599 (Domyślnie) Jeśli router otrzyma z procesora komunikatów odpowiedź HTTP 599, przekaże żądanie do następnego procesora komunikatów.

HTTP 599 to specjalny kod odpowiedzi generowany przez procesor komunikatów podczas wyłączania. Procesor wiadomości próbuje zrealizować wszystkie istniejące żądania, ale w przypadku nowych żądań odpowiada kodem HTTP 599, aby poinformować router o konieczności ponowienia żądania na następnym procesorze wiadomości.

error Jeśli podczas nawiązywania połączenia z procesorem komunikatów, przekazywania do niego żądania lub odczytywania z niego nagłówka odpowiedzi wystąpi błąd, router przekazuje żądanie do następnego procesora komunikatów.
timeout Jeśli podczas nawiązywania połączenia z procesorem komunikatów, przekazywania do niego żądania lub odczytywania z niego nagłówka odpowiedzi nastąpi przekroczenie limitu czasu, router przekazuje żądanie do następnego procesora komunikatów.
invalid_header Jeśli procesor komunikatów zwróci pustą lub nieprawidłową odpowiedź, router przekazuje żądanie do następnego procesora komunikatów.
http_XXX Jeśli procesor komunikatów zwróci odpowiedź z kodem HTTP XXX, router przekazuje żądanie do następnego procesora komunikatów.

Jeśli podasz wiele wartości, Router połączy je za pomocą operatora logicznego LUB.

Na przykład:

<RetryOptions>
  <RetryOption>http_599</RetryOption>
  <RetryOption>error</RetryOption>
  <RetryOption>timeout</RetryOption>
  <RetryOption>invalid_header</RetryOption>
</RetryOptions>
ListenOptions Dostępne w przypadku Private Cloud w wersji 4.18.01 i nowszych oraz Edge Cloud po przesłaniu prośby do zespołu pomocy Apigee Edge.
ListenOption

Jeśli używasz ELB w trybie przekazywania TCP do obsługi żądań kierowanych do routerów brzegowych, router traktuje adres IP ELB jako adres IP klienta, a nie rzeczywisty adres IP klienta. Jeśli router wymaga rzeczywistego adresu IP klienta, włącz proxy_protocol na ELB, aby przekazywał adres IP klienta w pakiecie TCP. Na routerze musisz też ustawić wartość <ListenOption> w przypadku hosta wirtualnego na proxy_protocol. ELB działa w trybie przekazywania TCP, więc zwykle kończysz TLS na routerze. Dlatego zwykle konfigurujesz hosta wirtualnego tak, aby używał proxy_protocol, gdy konfigurujesz go też do korzystania z TLS.

Domyślna wartość parametru <ListenOption> to pusty ciąg znaków.

Na przykład:

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

Aby później cofnąć ustawienie <ListenOption>, zaktualizuj hosta wirtualnego i pomijaj tag <ListenOptions> podczas aktualizacji.

SSLInfo
Włączono

Włącza jednokierunkowy protokół TLS/SSL. Musisz mieć zdefiniowany magazyn kluczy zawierający certyfikat i klucz prywatny.

W przypadku chmury: musisz mieć certyfikat podpisany przez zaufany podmiot, np. Symantec lub VeriSign. Nie możesz używać certyfikatu podpisanego samodzielnie ani certyfikatów liści podpisanych przez podpisany samodzielnie urząd certyfikacji.

W przypadku Cloud: jeśli istniejący host wirtualny jest skonfigurowany do używania portu innego niż 443, nie możesz zmienić ustawienia TLS. Oznacza to, że nie możesz zmienić ustawienia TLS z włączonego na wyłączone ani z wyłączonego na włączone.

fałsz Nie
ClientAuthEnabled Włącza dwukierunkowy protokół TLS lub protokół TLS klienta między Edge (serwerem) a aplikacją (klientem) wysyłającą żądanie. Włączenie dwukierunkowego protokołu TLS wymaga skonfigurowania w Edge magazynu zaufanych certyfikatów, który zawiera certyfikat klienta TLS. fałsz Nie
KeyStore

Nazwa magazynu kluczy w Edge.

Apigee zaleca używanie odwołania do określania nazwy magazynu kluczy, aby można było zmienić magazyn kluczy bez konieczności ponownego uruchamiania routerów. Więcej informacji znajdziesz w artykule Opcje konfigurowania TLS.

Brak Tak, jeśli pole Włączone ma wartość „prawda”
KeyAlias Alias określony podczas przesyłania certyfikatu i klucza prywatnego do magazynu kluczy. Musisz podać nazwę aliasu dosłownie. Nie możesz użyć odwołania. Więcej informacji znajdziesz w artykule Opcje konfigurowania TLS. Brak Tak, jeśli pole Włączone ma wartość „prawda”
TrustStore

Nazwa magazynu zaufanych certyfikatów w Edge, który zawiera certyfikat lub łańcuch certyfikatów używany do dwukierunkowego protokołu TLS. Wymagane, jeśli <ClientAuthEnabled> ma wartość „true” (prawda).

Apigee zaleca używanie odwołania do określania nazwy magazynu zaufanych certyfikatów, aby można było zmienić magazyn zaufanych certyfikatów bez konieczności ponownego uruchamiania routerów. Więcej informacji znajdziesz w artykule Opcje konfigurowania TLS.

Brak Nie
IgnoreValidationErrors

Jeśli wartość to „true”, błędy certyfikatu TLS są ignorowane. Jest to podobne do opcji „-k” polecenia cURL.

Ta opcja jest prawidłowa podczas konfigurowania protokołu TLS dla serwerów docelowych i docelowych punktów końcowych oraz podczas konfigurowania hostów wirtualnych, które używają dwukierunkowego protokołu TLS.

Jeśli jest używany z docelowym punktem końcowym lub serwerem docelowym, a system backendu używa SNI i zwraca certyfikat z nazwą wyróżniającą podmiotu, która nie pasuje do nazwy hosta, nie można zignorować błędu, a połączenie się nie powiedzie.

fałsz Nie
Szyfry

Dotyczy tylko Edge for Private Cloud w wersji 4.15.07 i starszych.

Określa szyfry obsługiwane przez hosta wirtualnego. Jeśli nie określisz żadnych szyfrów, dozwolone będą wszystkie szyfry dostępne w JVM.

Aby ograniczyć szyfry, dodaj te elementy:

<Ciphers>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
Wszystkie obsługiwane przez JVM Nie
Protokoły

Dotyczy tylko Edge for Private Cloud w wersji 4.15.07 i starszych.

Określa protokoły obsługiwane przez hosta wirtualnego. Jeśli nie określono żadnych protokołów, dozwolone będą wszystkie protokoły dostępne dla JVM.

Aby ograniczyć protokoły, dodaj te elementy:

<Protocols>
  <Protocol>TLSv1</Protocol>
  <Protocol>TLSv1.2</Protocol>
  <Protocol>SSLv2Hello</Protocol>
</Protocols>
Wszystkie obsługiwane przez JVM Nie
UseBuiltInFreeTrialCert Dostępne tylko w przypadku Edge Cloud.
UseBuiltInFreeTrialCert

Jeśli masz płatne konto Edge for Cloud, ale nie masz jeszcze certyfikatu i klucza TLS, możesz utworzyć hosta wirtualnego, który korzysta z certyfikatu i klucza z bezpłatnej wersji próbnej Apigee. Oznacza to, że możesz utworzyć host wirtualny bez wcześniejszego utworzenia magazynu kluczy.

Certyfikat bezpłatnego okresu próbnego Apigee jest zdefiniowany dla domeny *.apigee.net. Dlatego <HostAlias> hosta wirtualnego musi mieć format *.apigee.net.

Zobacz Definiowanie hosta wirtualnego, który korzysta z certyfikatu i klucza bezpłatnej wersji próbnej Apigee.

fałsz Nie
PropagateTLSInformation Dostępne w wersji alfa tylko w przypadku Edge Cloud.
ConnectionProperties

Umożliwia przechwytywanie przez Edge informacji o połączeniu TLS. Te informacje są następnie dostępne jako zmienne przepływu w proxy interfejsu API. Więcej informacji znajdziesz w artykule Uzyskiwanie dostępu do informacji o połączeniu TLS w proxy interfejsu API.

fałsz Nie
ClientProperties

Umożliwia przechwytywanie szczegółów certyfikatu klienta przechwytywanych przez Edge w dwukierunkowym protokole TLS. Te informacje są następnie dostępne jako zmienne przepływu w proxy interfejsu API. Więcej informacji znajdziesz w artykule Uzyskiwanie dostępu do informacji o połączeniu TLS w proxy interfejsu API.

fałsz Nie
Usługi Dostępne w przypadku Edge Cloud i Private Cloud w wersji 4.17.01 lub nowszej.
proxy_read_timeout

Ustawia czas oczekiwania w sekundach między procesorami wiadomości a routerem. Jeśli przed upływem tego czasu router nie otrzyma odpowiedzi z procesora komunikatów, przerywa połączenie i zwraca odpowiedź HTTP 504.

Wartość proxy_read_timeout powinna być większa niż docelowa wartość limitu czasu używana przez procesor komunikatów. Dzięki temu router nie przekroczy limitu czasu, zanim procesor komunikatów zdąży zwrócić odpowiedź. Domyślny docelowy czas oczekiwania dla procesora komunikatów to 55 sekund (55 000 milisekund), zgodnie z definicją tokena conf_http_HTTPTransport.io.timeout.millis dla procesora komunikatów.

57 Nie
keepalive_timeout

Ustawia czas oczekiwania (w sekundach) między klientem a routerem, gdy klient wysyła żądanie zawierające nagłówek Keep-Alive. Router utrzymuje połączenie otwarte, dopóki nie upłynie określony czas.

Router nie zamknie połączenia, jeśli oczekuje obecnie na odpowiedź z procesora komunikatów. Limit czasu rozpoczyna się dopiero po tym, jak router zwróci odpowiedź do klienta.

65 Nie
ssl_ciphers

Ustawia szyfry obsługiwane przez hosta wirtualnego, zastępując domyślne szyfry ustawione w routerze.

Podaj listę szyfrów rozdzielonych dwukropkami w formacie:

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

Informacje o składni i wartościach dozwolonych przez ten token znajdziesz na stronie https://www.openssl.org/docs/man1.0.2/man1/ciphers.html. Pamiętaj, że ten token używa nazw szyfrów OpenSSL, takich jak AES128-SHA256, a nie nazw szyfrów Java/JSSE, takich jak TLS_RSA_WITH_AES_128_CBC_SHA256.

WYSOKI:!aNULL:

!MD5:

!DH+3DES:

!kEDH

Nie
ssl_protocols

Dostępne tylko w przypadku Edge for Private Cloud.

Ustawia protokoły TLS obsługiwane przez hosta wirtualnego jako listę rozdzieloną spacjami, zastępując domyślne protokoły ustawione na routerze.

Uwaga: jeśli 2 wirtualni hosty korzystają z tego samego portu, muszą mieć ustawione te same protokoły.ssl_protocols Oznacza to, że hosty wirtualne współdzielące ten sam port muszą obsługiwać dokładnie te same protokoły.

Podaj listę protokołów TLS rozdzielonych spacjami w formacie:

<Property name="ssl_protocols">TLSv1 TLSv1.2</Property>
TLSv1 TLSv1.1 TLSv1.2 Nie
proxy_request_buffering

Włącza (on) lub wyłącza (off) buforowanie treści żądania. Gdy buforowanie jest włączone, router buforuje całą treść żądania przed wysłaniem jej do procesora wiadomości. Jeśli wystąpi błąd, router może spróbować użyć innego procesora komunikatów.

Jeśli jest wyłączona, buforowanie jest wyłączone, a treść żądania jest wysyłana do procesora komunikatów natychmiast po jej otrzymaniu. Jeśli wystąpi błąd, router nie ponawia próby wysłania żądania do innego procesora komunikatów.

włączono Nie
proxy_buffering Włącza (on) lub wyłącza (off) buforowanie odpowiedzi. Gdy buforowanie jest włączone, router buforuje odpowiedź. Gdy buforowanie jest wyłączone, odpowiedź jest przekazywana do klienta synchronicznie, natychmiast po jej otrzymaniu przez router. włączono Nie