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 zdefiniowania hosta wirtualnego, jest oparty na Twojej wersji Edge: Cloud lub Private Cloud.

Jeśli jesteś klientem usługi Private Cloud, musisz upewnić się, że używasz odpowiedniego pliku XML dla swojej wersji Edge.

Cloud i Private Cloud w wersji 4.17.01 lub nowszej

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

Chmura prywatna w wersji 4.15.07 i wcześniejszych

<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 używasz do konfigurowania 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 API.

W atrybucie nazwa możesz używać tylko tych znaków: A-Z0-9._\-$%.

Brak Tak
Port

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

Jeśli w elemencie hostalias podasz port, numer portu określony przez element <Port> musi być z nim zgodny.

W przypadku usługi Cloud: podczas tworzenia hosta wirtualnego musisz podać port 443. Jeśli pominiesz ten parametr, domyślnie zostanie ustawiony port 443. Jeśli masz już hosta wirtualnego, który używa portu innego niż 443, nie możesz go zmienić.

W przypadku Private Cloud w wersjach 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, zazwyczaj portów 1024 i niższych. Jeśli chcesz utworzyć hosta wirtualnego, który powiąże router z zabezpieczonym 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 jednego 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 odbywa się na routerze na określonym porcie.

Brak Tak
BaseUrl Zastępuje adres URL wyświetlany przez interfejs Edge w przypadku serwera proxy interfejsu API wdrożonego na hosta wirtualnego. Ta opcja jest przydatna, 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 Private Cloud.

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

Brak Nie
OCSPStapling

Klient OCSP (Online Certificate Status Protocol) wysyła żądanie stanu do odpowiadacza OCSP, aby ustalić, czy certyfikat TLS jest prawidłowy. Odpowiedź wskazuje, czy certyfikat TLS jest ważny i nie został odwołany.

Po włączeniu szpilkowania OCSP przeglądarka Edge, działająca jako serwer TLS w przypadku jednokierunkowego TLS, może bezpośrednio wysłać zapytanie do odpowiadacza OCSP, a następnie zapisać odpowiedź w pamięci podręcznej. Edge zwraca tę odpowiedź do klienta TLS lub zszywa ją w ramach uzgadniania połączenia TLS. Więcej informacji znajdziesz w artykule Włączanie sztaplowania OCSP na serwerze.

Aby umożliwić zszywanie OCSP, musisz włączyć protokół TLS. Ustaw na 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 hosta wirtualnego musi być niepowtarzalna dla wszystkich hostów wirtualnych w instalacji Edge. Oznacza to, że wiele wirtualnych hostów może używać tego samego numeru portu, jeśli mają różne aliasy hosta.

Musisz utworzyć wpis DNS i rekord CNAME, który pasuje do aliasu hosta, a alias hosta musi pasować do ciągu przekazanego przez klienta w nagłówku Host.

Numer portu w HostAlias jest opcjonalny. Jeśli port jest określony w ramach aliasu hosta, musisz go też podać 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 odpowiadających wielu wpisom DNS dla tego hosta, ale nie dla wielu portów. Jeśli chcesz użyć kilku 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 się znajdować tylko na początku (poprzedzający pierwszy „.”) aliasu hosta i nie można go łączyć z innymi znakami. Na przykład *.example.com. Certyfikat TLS dla hosta wirtualnego musi mieć symbol wieloznaczny w nazwie CN certyfikatu. Na przykład: *.example.com. Użycie symbolu wieloznacznego w aliasie hosta wirtualnego pozwala serwerom proxy interfejsu API obsługiwać wywołania kierowane do wielu subdomen, takich jak alpha.example.com, beta.example.com lub live.example.com. Używanie aliasu z symbolem wieloznacznym pozwala też używać mniejszej liczby hostów wirtualnych na środowisko, aby nie przekraczać limitów usługi, ponieważ host wirtualny z symbolem wieloznacznym jest liczony jako 1 host wirtualny.

W przypadku usługi w chmurze: jeśli masz istniejący host wirtualny, który używa portu innego niż 443, nie możesz dodać ani usunąć aliasu hosta.

W przypadku chmury Private Cloud: jeśli ustawiasz alias hosta przy użyciu 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, do których ma być przypisana usługa port. Jeśli pominiesz ten element, port zostanie powiązany ze wszystkimi interfejsami.

Aby na przykład określić wiązanie portu tylko z interfejsem en0:

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

Określ interfejsy dostępne w systemie, uruchamiając polecenie „ifconfig -a”.

Brak Wszystkie interfejsy
RetryOptions Dostępne w Edge Cloud i Private Cloud w wersji 4.18.01 lub nowszej.
RetryOption

Skonfiguruj sposób reakcji routera dla tego hosta wirtualnego, gdy usługa Message Processor przestanie działać.

Aby podać wiele wartości, użyj <RetryOption>. Prawidłowe wartości:

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

HTTP 599 to specjalny kod odpowiedzi generowany przez procesor wiadomości podczas jego zamykania. Przetwarzacz wiadomości próbuje zrealizować wszystkie istniejące żądania, ale w przypadku nowych żądań odpowiada kodem HTTP 599, aby zasygnalizować Routerowi, że ma ponownie wysłać żądanie do następnego przetwarzacza wiadomości.

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

Jeśli podasz kilka 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 wersji Private Cloud 4.18.01 lub nowszej oraz w przypadku Edge Cloud po wysłaniu prośby do zespołu pomocy Apigee Edge.
ListenOption

Jeśli używasz narzędzia ELB w trybie przekazywania TCP do obsługi żądań wysyłanych do routerów brzegowych, router będzie traktować adres IP zbioru ELB jako adres IP klienta, a nie rzeczywisty adres IP klienta. Jeśli router wymaga prawdziwego adresu IP klienta, włącz proxy_protocol w ELB, aby przekazywał adres IP klienta w pakiecie TCP. W routerze musisz też ustawić <ListenOption> na hoście wirtualnym na proxy_protocol. Ponieważ ELB działa w trybie przekazywania TCP, zwykle kończysz szyfrowanie TLS na routerze. Dlatego zwykle host wirtualny jest konfigurowany do używania proxy_protocoltylko wtedy, gdy jest też konfigurowany do używania TLS.

Domyślną wartością pola <ListenOption> jest pusty ciąg znaków.

Na przykład:

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

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

SSLInfo
Włączono

Włącza szyfrowanie TLS/SSL w jednym kierunku. Musisz zdefiniować magazyn kluczy zawierający certyfikat i klucz prywatny.

W przypadku Cloud: 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 usługi w chmurze: jeśli istniejący host wirtualny jest skonfigurowany tak, aby używać portu innego niż 443, nie możesz zmienić ustawienia TLS. Oznacza to, że nie możesz zmienić ustawienia TLS z włączonego na wyłączony ani z wyłączonego na włączony.

fałsz Nie
ClientAuthEnabled Umożliwia dwukierunkowe szyfrowanie TLS między Edge (serwerem) a aplikacją (klientem) wysyłającą żądanie. Włączenie dwukierunkowego protokołu TLS wymaga skonfigurowania w Edge magazynu zaufania, który zawiera certyfikat z klienta TLS. fałsz Nie
KeyStore

Nazwa magazynu kluczy w Edge.

Apigee zaleca użycie odwołania do nazwy keystore, aby można było zmienić keystore bez restartowania Routerów. Więcej informacji znajdziesz w sekcji Opcje konfiguracji TLS.

Brak Tak, jeśli wartość Enabled to 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 sekcji Opcje konfiguracji TLS. Brak Tak, jeśli parametr Enabled ma wartość true
TrustStore

Nazwa zaufanej pamięci w Edge, która zawiera certyfikat lub łańcuch certyfikatów używany do dwukierunkowego TLS. Wymagane, jeśli parametr <ClientAuthEnabled> ma wartość true (prawda).

Apigee zaleca użycie odwołania do nazwy repozytorium zaufania, aby można było zmienić repozytorium zaufania bez restartowania routerów. Więcej informacji znajdziesz w sekcji Opcje konfiguracji TLS.

Brak Nie
IgnoreValidationErrors

Jeśli ma wartość true (prawda), określa, że błędy certyfikatu TLS mają być ignorowane. Jest to podobne do opcji „-k” w przypadku cURL.

Ta opcja ma zastosowanie podczas konfigurowania protokołu TLS dla serwerów docelowych i docelowych punktów końcowych oraz podczas konfigurowania hostów wirtualnych korzystających z dwukierunkowego protokołu TLS.

Jeśli system backendu używa SNI i zwraca certyfikat z nazwą podmiotu (DN), która nie pasuje do nazwy hosta, a punkt końcowy lub serwer docelowy jest używany, nie można zignorować błędu i połączenie się nie powiedzie.

fałsz Nie
Szyfry

Dotyczy tylko Edge for Private Cloud w wersji 4.15.07 lub starszej.

Określa mechanizmy szyfrowania obsługiwane przez hosta wirtualnego. Jeśli nie zostaną określone żadne szyfry, dozwolone będą wszystkie szyfry dostępne dla 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 przeglądarki Edge for Private Cloud w wersji 4.15.07 lub starszej.

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

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 dla Cloud i nie masz jeszcze certyfikatu ani klucza TLS, możesz utworzyć hosta wirtualnego korzystającego z bezpłatnego certyfikatu i klucza próbnego Apigee. Oznacza to, że możesz utworzyć hosta wirtualnego bez wcześniejszego utworzenia magazynu kluczy.

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

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

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

Umożliwia rejestrowanie informacji o połączeniu TLS przez Edge. Te informacje są potem dostępne jako zmienne przepływu w proxy interfejsu API. Więcej informacji znajdziesz w artykule Dostęp do informacji o połączeniu TLS w pośredniku interfejsu API.

fałsz Nie
ClientProperties

Umożliwia przechwytywanie szczegółów certyfikatu klienta przez Edge w ramach dwukierunkowego TLS. Te informacje są potem dostępne jako zmienne przepływu w proxy interfejsu API. Więcej informacji znajdziesz w artykule Dostęp do informacji o połączeniu TLS w interfejsie API proxy.

fałsz Nie
Usługi Dostępne w 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 przełącznikiem. Router zrywa połączenie i zwraca kod odpowiedzi HTTP 504, jeśli przed upływem tego czasu nie otrzyma odpowiedzi od procesora wiadomości.

Wartość parametru proxy_read_timeout powinna być większa niż docelowy limit czasu używany przez przetwarzacz wiadomości. Dzięki temu router nie przekroczy limitu czasu, zanim procesor wiadomości zdąży zwrócić odpowiedź. Domyślny docelowy czas oczekiwania dla procesora wiadomości to 55 sekund (55 000 milisekund), zgodnie z tokenem conf_http_HTTPTransport.io.timeout.millis dla tego procesora.

57 Nie
keepalive_timeout

Określa 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 do czasu wygaśnięcia jego czasu trwania.

Router nie zamknie połączenia, jeśli oczekuje na odpowiedź od przetwarzacza wiadomości. Czas oczekiwania rozpoczyna się dopiero po tym, jak Router zwróci odpowiedź klientowi.

65 Nie
ssl_ciphers

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

Podaj listę szyfrów rozdzielonych dwukropkiem 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.

HIGH:!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 hosty wirtualnych używają tego samego portu, muszą mieć ustawiony ten sam protokół w sekcji ssl_protocols. Oznacza to, że hosty wirtualnych, które współdzielą ten sam port, muszą obsługiwać te same protokoły.

Podaj rozdzielaną spacjami listę protokołów TLS 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 go do procesora wiadomości. Jeśli wystąpi błąd, router może ponowić próbę użycia innego procesora wiadomości.

Jeśli jest wyłączone, buforowanie jest wyłączone, a treść żądania jest wysyłana do procesora wiadomości natychmiast po jej otrzymaniu. Jeśli wystąpi błąd, router nie próbuje ponownie wysłać żądania do innego procesora wiadomości.

włączono Nie
proxy_buffering Włącza lub wyłącza buforowanie odpowiedzi. Gdy buforowanie jest włączone, router buforuje odpowiedź. Gdy buforowanie jest wyłączone, odpowiedź jest przekazywana klientowi synchronicznie, natychmiast po otrzymaniu przez Router. włączono Nie