Dokumentacja właściwości hosta wirtualnego

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Reprezentacja hosta wirtualnego

Obiekt XML, którego używasz do zdefiniowania hosta wirtualnego, opiera się na Twojej wersji Edge: Cloud lub Private Cloud.

Jeśli korzystasz z Private Cloud, sprawdź, czy używasz prawidłowego kodu XML dla używanej wersji Edge.

Cloud i Private Cloud 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 od 4.16.01 do 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 4.15.07 i starsze

<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

Poniższa tabela zawiera właściwości używane do konfigurowania hosta wirtualnego:

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

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

Dopuszczalne znaki w atrybucie nazwa są ograniczone do: A-Z0-9._\-$%.

Brak Tak
Port

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

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

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

W przypadku chmury prywatnej od 4.16.01 do 4.17.05: podczas tworzenia hosta wirtualnego należy podać 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 do portów 1024 i starszych). 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 o konfigurowaniu 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 konkretnym porcie i z podanym certyfikatem. Z tego powodu wiele hostów wirtualnych nie może używać tego samego numeru portu, jeśli w routerze na danym porcie nastąpi zakończenie TLS.

Brak Tak
BaseUrl Zastępuje adres URL wyświetlany w interfejsie użytkownika Edge w przypadku serwera proxy interfejsu API wdrożonego na hoście wirtualnym. Ta opcja jest przydatna, gdy przed routerami brzegowymi masz zewnętrzny system równoważenia obciążenia. Więcej informacji znajdziesz w artykule o konfigurowaniu dostępu TLS do interfejsu API w chmurze 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 obiektu odpowiadającego OCSP w celu określenia, czy certyfikat TLS jest prawidłowy. Odpowiedź wskazuje, czy certyfikat TLS jest prawidłowy i nie został unieważniony.

Gdy ta opcja jest włączona, zszywanie OCSP umożliwia przeglądarce Edge, która działa jako serwer TLS na potrzeby jednokierunkowego protokołu TLS, bezpośrednie wysyłanie zapytań do odpowiedzi OCSP, a następnie zapisywanie odpowiedzi w pamięci podręcznej. Następnie Edge zwraca tę odpowiedź do klienta TLS lub zszywa ją w ramach uzgadniania połączenia TLS. Więcej informacji znajdziesz w artykule Włączanie zszywania z użyciem protokołu OCSP na swoim serwerze.

Aby włączyć zszywanie przy użyciu OCSP, musisz włączyć protokół TLS. Aby włączyć, ustaw on. Wartością domyślną jest off.

wyłączono Nie
HostAliases
HostAlias

Publicznie widoczna nazwa DNS hosta wirtualnego w routerze, opcjonalnie wraz 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 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 zgodny z aliasem hosta, a alias hosta musi być zgodny z ciągiem znaków przekazywanym przez klienta w nagłówku Host.

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

W tej samej definicji hosta wirtualnego można mieć wiele definicji HostAlias odpowiadających wielu wpisom DNS dla hosta wirtualnego, ale nie wielu portów. Jeśli chcesz mieć wiele portów, utwórz wiele definicji hostów wirtualnych z różnymi portami.

W aliasie hosta możesz uwzględnić symbol wieloznaczny „*”. Symbol wieloznaczny „*” może znajdować się tylko na początku aliasu hosta (poprzedzający pierwszy znak „.”) i nie można go mieszać z innymi znakami. Na przykład *.example.com. Certyfikat TLS hosta wirtualnego musi zawierać pasujący do niego symbol wieloznaczny w nazwie CN certyfikatu. Na przykład: *.example.com. Użycie symbolu wieloznacznego w aliasie hosta wirtualnego pozwala serwerom proxy interfejsu API na obsługę wywołań adresowanych do wielu subdomen, takich jak alpha.example.com, beta.example.com lub live.example.com. Użycie aliasu z symbolem wieloznacznym pomaga też ograniczać liczbę hostów wirtualnych na środowisko, aby zmieścić się w limitach usług, ponieważ host wirtualny z symbolem wieloznacznym liczy się jako tylko 1 host wirtualny.

Cloud: jeśli masz hosta wirtualnego, który korzysta z portu innego niż 443, nie możesz dodawać ani usuwać aliasu hosta.

W przypadku chmury prywatnej: jeśli ustawiasz alias hosta przy użyciu adresów IP routerów, a nie wpisów DNS, dodaj oddzielny 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 dla Private Cloud.
Interfejs

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

Aby na przykład powiązać port tylko z wartością en0:

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

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

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

Skonfiguruj sposób reakcji routera na tego hosta wirtualnego, gdy procesor wiadomości przestanie działać.

Za pomocą parametru <RetryOption> można podać wiele wartości. Prawidłowe wartości to między innymi:

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

HTTP 599 to specjalny kod odpowiedzi generowany przez procesor wiadomości w momencie jego wyłączania. Podmiot przetwarzający wiadomości próbuje zrealizować wszystkie istniejące żądania, ale w przypadku nowych odpowiada HTTP 599, aby zasygnalizować routerowi, aby ponowił je przy użyciu następnego procesora wiadomości.

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

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 Private Cloud w wersji 4.18.01 i nowszych oraz w Edge Cloud przez wysłanie żądania do zespołu pomocy Apigee Edge.
ListenOption

Jeśli używasz ELB w trybie przekazywania TCP do obsługi żądań 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 w ELB, aby przekazywać adres IP klienta w pakiecie TCP. W routerze musisz też ustawić <ListenOption> na hoście wirtualnym na proxy_protocol. ELB działa w trybie przekazywania TCP, więc zwykle wyłączasz protokół TLS w routerze. Dlatego zwykle host wirtualny konfigurujesz do używania proxy_protocol tylko wtedy, gdy konfigurujesz go do używania protokołu TLS.

Wartością domyślną <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ń w aktualizacji tag <ListenOptions>.

SSLInfo
Włączono

Włącza jednokierunkową transmisję TLS/SSL. Musisz mieć zdefiniowany magazyn kluczy zawierający certyfikat i klucz prywatny.

Cloud: musisz mieć certyfikat podpisany przez zaufany podmiot, np. Symantec czy VeriSign. Nie możesz używać samodzielnie podpisanego certyfikatu ani certyfikatów liści podpisanych samodzielnie podpisanym urzędem certyfikacji.

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żna zmienić ustawienia TLS z „włączonego” na „wyłączony” ani z „wyłączonego” na włączony.

false Nie
ClientAuthEnabled Włącza dwukierunkową komunikację TLS między serwerem Edge (serwer) a aplikacją (klientem) wysyłającą żądanie. Włączenie dwukierunkowego protokołu TLS wymaga skonfigurowania magazynu zaufania w Edge, który zawiera certyfikat klienta TLS. false Nie
KeyStore

Nazwa magazynu kluczy w Edge.

Apigee zaleca użycie odniesienia do określenia nazwy magazynu kluczy. Dzięki temu można zmienić magazyn kluczy bez konieczności ponownego uruchamiania routerów. Więcej informacji znajdziesz w sekcji Opcje konfigurowania TLS.

Brak Tak, jeśli opcja Włączone ma wartość Prawda
KeyAlias Alias określony podczas przesyłania certyfikatu i klucza prywatnego do magazynu kluczy. Alias musisz określić dosłownie; nie można użyć odwołania. Więcej informacji znajdziesz w sekcji Opcje konfigurowania TLS. Brak Tak, jeśli opcja Włączone ma wartość Prawda
TrustStore

Nazwa magazynu zaufania w Edge, który zawiera certyfikat lub łańcuch certyfikatów używany na potrzeby dwukierunkowego protokołu TLS. Wymagane, jeśli zasada <ClientAuthEnabled> ma wartość prawda.

Apigee zaleca użycie odniesienia do określenia nazwy magazynu zaufania. Dzięki temu można zmienić magazyn zaufania bez konieczności ponownego uruchamiania routerów. Więcej informacji znajdziesz w sekcji Opcje konfigurowania TLS.

Brak Nie
IgnoreValidationErrors

Jeśli ma wartość true (prawda), określa ignorowanie błędów certyfikatów TLS. Ta opcja jest podobna do opcji „-k” w cURL.

Ta opcja jest ważna podczas konfigurowania protokołu TLS dla serwerów docelowych i docelowych punktów końcowych oraz podczas konfigurowania hostów wirtualnych używających dwukierunkowego protokołu TLS.

Jeżeli jest używany razem z docelowym punktem końcowym lub serwerem docelowym, a system backendu używa rozszerzenia SNI i zwraca certyfikat z nazwą wyróżniającą podmiotu, która nie jest zgodna z nazwą hosta, nie ma sposobu, aby zignorować błąd i nawiązać połączenie.

false Nie
Mechanizmy szyfrowania

Tylko dla Edge for Private Cloud w wersji 4.15.07 i starszych.

Określa mechanizmy szyfrowania obsługiwane przez hosta wirtualnego. Jeśli nie podasz żadnych mechanizmów szyfrowania, dozwolone będą wszystkie mechanizmy szyfrowania dostępne dla JVM.

Aby ograniczyć mechanizmy szyfrowania, 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

Tylko dla Edge for Private Cloud w wersji 4.15.07 i starszych.

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

Aby ograniczyć korzystanie z protokołów, 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, ale nie masz jeszcze certyfikatu ani klucza TLS, możesz utworzyć hosta wirtualnego, który będzie używał bezpłatnego certyfikatu i klucza wersji próbnej Apigee. Oznacza to, że możesz utworzyć hosta wirtualnego bez wcześniejszego tworzenia magazynu kluczy.

Bezpłatny certyfikat próbny Apigee jest zdefiniowany dla domeny *.apigee.net. Dlatego pole <HostAlias> hosta wirtualnego musi również mieć format *.apigee.net.

Zobacz Definiowanie hosta wirtualnego, który używa bezpłatnego certyfikatu próbnego i klucza Apigee.

false Nie
PropagateTLSInformation Dostępne w wersji alfa tylko w przypadku Edge Cloud.
ConnectionProperties

Włącza przechwytywanie informacji o połączeniu TLS przez Edge. Informacje te są dostępne jako zmienne przepływu na serwerze proxy interfejsu API. Więcej informacji znajdziesz w artykule Uzyskiwanie dostępu do informacji o połączeniu TLS przez serwer proxy interfejsu API.

false Nie
ClientProperties

Umożliwia przechwytywanie szczegółów certyfikatu klienta przechwyconych przez Edge przy użyciu dwukierunkowego protokołu TLS. Informacje te są dostępne jako zmienne przepływu na serwerze proxy interfejsu API. Więcej informacji znajdziesz w artykule Uzyskiwanie dostępu do informacji o połączeniu TLS przez serwer proxy interfejsu API.

false Nie
Usługi Dostępne dla Edge Cloud oraz Private Cloud w wersji 4.17.01 i nowszych.
proxy_read_timeout

Określa czas oczekiwania (w sekundach) między procesorami wiadomości a routerem. Router przerwie połączenie i zwróci odpowiedź HTTP 504, jeśli nie otrzyma odpowiedzi od procesora wiadomości przed upływem tego czasu.

Wartość proxy_read_timeout powinna być większa od docelowego limitu czasu używanego przez procesor wiadomości. Dzięki temu router nie przekroczy limitu czasu oczekiwania, zanim procesor wiadomości będzie miał czas na zwrócenie odpowiedzi. Domyślny docelowy czas oczekiwania procesora wiadomości to 55 sekund i 55 000 milisekund. Określono go w tokenie conf_http_HTTPTransport.io.timeout.millis procesora wiadomości.

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 otwarte połączenie do czasu zakończenia okresu.

Router nie zamknie połączenia, jeśli obecnie oczekuje na odpowiedź od procesora wiadomości. Czas oczekiwania zaczyna się dopiero po zwróceniu przez router odpowiedzi do klienta.

65 Nie
ssl_ciphers

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

Określ 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 dla Private Cloud.

Ustawia protokoły TLS obsługiwane przez hosta wirtualnego w postaci listy rozdzielonej spacjami. Zastąpi to domyślne protokoły ustawione w routerze.

Uwaga: jeśli 2 hosty wirtualne mają ten sam port, ssl_protocols muszą ustawić te same protokoły. Oznacza to, że hosty wirtualne korzystające z tego samego portu muszą obsługiwać dokładnie 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 (włączone) lub wyłącza (wyłączone) 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 ta opcja jest wyłączona, buforowanie jest wyłączone, a treść żądania jest wysyłana do podmiotu przetwarzającego wiadomości natychmiast po odebraniu. Jeśli wystąpi błąd, router nie ponawia żądania do innego podmiotu przetwarzającego wiadomości.

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