Konfigurowanie hostów wirtualnych

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

Klient Google Cloud z płatnym kontem i wszyscy klienci Edge for Private Cloud mogą utworzyć hosta wirtualnego w organizacji. Użytkownik tworzący hosta wirtualnego musi mieć rolę administratora organizacji lub rolę niestandardową z uprawnieniami do modyfikowania hosta wirtualnego. Użytkownicy w innych rolach nie mają uprawnień do tworzenia hostów wirtualnych.

Obejrzyj film wprowadzający do wirtualnych gospodarzy.

Tworzenie hosta wirtualnego

Aby utworzyć hosta wirtualnego, wykonaj tę podstawową procedurę. Dokładna procedura zależy od tego, czy jesteś klientem Google Cloud czy Private Cloud oraz czy włączasz TLS:

  1. Utwórz wpis DNS i rekord CNAME dla domeny dostępnej publicznie.
  2. Jeśli włączasz TLS na hoście wirtualnym:
    1. Utwórz i skonfiguruj magazyn kluczy, wykonując podane tutaj instrukcje: Magazyny kluczy i zaufania.
    2. Prześlij certyfikat i klucz do magazynu kluczy. Upewnij się, że nazwa domeny określona w certyfikacie jest zgodna z aliasem hosta, którego chcesz używać dla hosta wirtualnego.
    3. Utwórz odwołanie do magazynu kluczy, korzystając z interfejsu użytkownika lub interfejsu API Edge. Odwołuje się on do nazwy magazynu kluczy i typu odwołania (KeyStore). Więcej informacji o tworzeniu i modyfikowaniu odwołań znajdziesz w artykule Praca z odwołaniami.
    4. Jeśli używasz dwukierunkowego TLS, utwórz zaufany magazyn, prześlij certyfikat i utwórz odwołanie do zaufanego magazynu. Utwórz magazyn zaufania, wykonując procedurę opisaną w artykule Magazyny kluczy i magazyny zaufania.
  3. Utwórz hosta wirtualnego za pomocą interfejsu API Create a Virtual Host. Jeśli włączasz TLS, pamiętaj, aby podać prawidłowe odwołanie do repozytorium kluczy, odwołanie do repozytorium zaufania i alias klucza.
  4. Jeśli masz już serwery proxy API, dodaj hosta wirtualnego do ProxyEndpoint. Host wirtualny jest automatycznie dodawany do wszystkich nowych serwerów proxy API. Zapoznaj się z artykułem Konfigurowanie serwera proxy interfejsu API do korzystania z hosta wirtualnego.

Po zaktualizowaniu serwera proxy API, aby używać hosta wirtualnego, i utworzeniu wpisu DNS oraz rekordu CNAME dla aliasu hosta możesz uzyskać dostęp do serwera proxy API w następujący sposób:

https://api.myCompany.com/v1/project-base-path/resource-path

Na przykład:

https://api.myCompany.com/v1/weather/forecastrss?w=12797282

Tworzenie hosta wirtualnego za pomocą interfejsu API lub interfejsu użytkownika

Hosta wirtualnego możesz utworzyć za pomocą interfejsu Edge API lub interfejsu Edge.

Większość poniższych przykładów korzysta z interfejsu Edge API. Aby uzyskać dostęp do interfejsu umożliwiającego tworzenie, modyfikowanie i usuwanie hostów wirtualnych w interfejsie Edge:

  1. Zaloguj się na apigee.com/edge.

    Klienci korzystający z Edge for Private Cloud używają http://ms-ip:9000 (lokalnie), gdzie ms-ip to adres IP lub nazwa DNS węzła serwera zarządzania.

  2. Na pasku nawigacyjnym po lewej stronie kliknij Administracja > Wirtualni gospodarze.
  3. Wybierz środowisko, np. prod lub test.
    Zostają wyświetleni hostowie wirtualni zdefiniowani dla środowiska.
  4. Kliknij + Host wirtualny, aby utworzyć hosta wirtualnego, lub wybierz nazwę istniejącego hosta wirtualnego, aby go edytować.

Tworzenie hosta wirtualnego dla HTTP

Klienci Edge for Private Cloud mogą utworzyć hosta wirtualnego za pomocą HTTP.

Aby utworzyć hosta wirtualnego, który nie obsługuje TLS, utwórz obiekt XML definiujący hosta wirtualnego. Na przykład obiekt XML poniżej definiuje hosta wirtualnego, który używa protokołu HTTP:

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>api.myCompany.com</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>80</Port>
</VirtualHost>

W tej definicji:

  • W polu Nazwa wpisz myVHost. Użyj nazwy do odwołania do hosta wirtualnego w serwerze proxy interfejsu API lub w wywołaniu interfejsu API.
  • Podaj alias hosta jako api.mojafirma.com. Jest to domena publiczna używana do uzyskiwania dostępu do interfejsów API zgodnie z definicją DNS i rekordem CNAME.
  • W polu Port wpisz 80. Jeśli go pominiesz, domyślnie port zostanie ustawiony na 443.
  • W hostie wirtualnym możesz ustawić dodatkowe właściwości. Informacje o wszystkich usługach znajdziesz w dokumentacji usługi hosta wirtualnego.

Jeśli masz już serwery proxy interfejsu API, dodaj hosta wirtualnego do elementu <HTTPConnection> w punkcie końcowym proxy. Host wirtualny jest automatycznie dodawany do wszystkich nowych serwerów proxy API. Zobacz artykuł Konfigurowanie serwera proxy interfejsu API do korzystania z hosta wirtualnego. Jeśli utworzysz nowe serwery proxy interfejsu API, które nie powinny być dostępne przez określony host wirtualny, musisz je edytować, aby usunąć ten host z punktu końcowego serwera proxy.

Następnie możesz uzyskać dostęp do serwera proxy API za pomocą tego hosta wirtualnego, wysyłając żądanie do:

http://api.myCompany.com/proxy-base-path/resource-path
https://api.myCompany.com/proxy-base-path/resource-path

Utwórz hosta wirtualnego za pomocą interfejsu API Create a Virtual Host (Tworzenie hosta wirtualnego):

curl -X POST -H "Content-Type:application/xml" \
  http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
  -d '<VirtualHost name="myVHost">
        <HostAliases>
            <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>80</Port>
    </VirtualHost>' \
  -u sysAdminEmail:password

Tworzenie hosta wirtualnego do jednokierunkowego TLS

Poniższy obiekt XML definiuje hosta wirtualnego dla jednokierunkowego TLS:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>
</VirtualHost>

W tej definicji włączasz TLS, ustawiając element <Enable> na wartość Prawda, a następnie używasz elementów <KeyStore> i <KeyAliase>, aby określić magazyn kluczy i alias klucza używane przez połączenie TLS.

Więcej informacji o używaniu protokołu TLS znajdziesz w artykule TLS/SSL.

Wybór sposobu określenia nazwy repozytorium kluczy i repozytorium zaufania w hostie wirtualnym

Podczas konfigurowania hosta wirtualnego, aby obsługiwał TLS, musisz określić magazyn kluczy, używając odwołania. Odwoływanie to zmienna zawierająca nazwę magazynu kluczy lub magazynu zaufania, a nie nazwę magazynu kluczy lub magazynu zaufania bezpośrednio, jak pokazano poniżej:

    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
    </SSLInfo>

Zaletą korzystania z odwołania jest to, że możesz zmienić wartość odwołania, aby zmienić klucze używane przez hosta wirtualnego, zwykle dlatego, że certyfikat w bieżącym magazynie kluczy wygasa w najbliższej przyszłości. Zmiana wartości odwołania nie wymaga restartowania routera brzegowego. Więcej informacji o tworzeniu i modyfikowaniu odwołań znajdziesz w artykule Praca z odwołaniami.

Możesz użyć tylko odwołania do klucza i repozytorium zaufania. Nie możesz użyć odwołania do aliasu. Gdy zmieniasz odwołanie do magazynu kluczy, upewnij się, że alias certyfikatu jest taki sam jak w starym magazynie kluczy.

Ograniczenia dotyczące używania odwołań do kluczowych repozytoriów i repozytoriów zaufanych

Podczas korzystania z odwołań do kluczowych repozytoriów kluczy i repozytoriów zaufanych musisz wziąć pod uwagę te ograniczenia:

  • Odwołania do klucza i repozytorium zaufania możesz używać w hostach wirtualnych tylko wtedy, gdy obsługujesz SNI i kończysz szyfrowanie SSL na routerach Apigee.
  • Jeśli masz system równoważenia obciążenia przed routerami Apigee i kończysz szyfrowanie TLS na tym systemie, nie możesz używać odwołań do magazynu kluczy i magazynu zaufania w hostach wirtualnych.

Tworzenie hosta wirtualnego do obsługi dwukierunkowego TLS

Aby włączyć dwukierunkowy TLS, ustaw element <ClientAuthEnabled> na true i określ magazyn zaufania, używając odwołania w elemencie <TrustStore>. Magazyn zaufania przechowuje wydawcę certyfikatu klienta i łańcuch urzędu certyfikacji (CA) certyfikatu, który jest wymagany. Klient musi też być prawidłowo skonfigurowany pod kątem dwukierunkowego TLS.

Aby utworzyć hosta wirtualnego dla dwukierunkowego TLS, utwórz obiekt XML definiujący hosta wirtualnego:

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>true</ClientAuthEnabled>
        <KeyStore>ref://myTestKeystoreRef</KeyStore>
        <KeyAlias>myKeyAlias</KeyAlias>
        <TrustStore>ref://myTestTruststoreRef</TrustStore>
    </SSLInfo>
</VirtualHost>

W tej definicji:

  • Włącz dwukierunkowy TLS, ustawiając wartość <ClientAuthEnabled> na „true”.
  • Określ odwołanie do repozytorium zaufania za pomocą elementu <TrustStore>. Magazyn zaufania przechowuje wydawcę certyfikatu klienta i łańcuch urzędu certyfikacji, który jest wymagany.

Więcej informacji o używaniu protokołu TLS znajdziesz w artykule TLS/SSL.

Modyfikowanie hosta wirtualnego

Klient Cloud z płatnym kontem i wszyscy klienci Edge for Private Cloud mogą używać interfejsu Aktualizuj hosta wirtualnego API do aktualizowania hosta wirtualnego. Ten interfejs API umożliwia ustawienie wszystkich właściwości hosta wirtualnego opisanych w sekcji Informacje o usłudze hosta wirtualnego.

Zaktualizuj hosta wirtualnego za pomocą interfejsu API Zaktualizuj hosta wirtualnego. Podczas korzystania z interfejsu API musisz podać pełną definicję hosta wirtualnego w ciele żądania, a nie tylko elementy, które chcesz zmienić.

W tym przykładzie ustawiasz wartość właściwości proxy_read_timeout:

curl -X PUT -H "Content-Type:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \
    -d '<VirtualHost  name="myTLSVHost">
         <HostAliases>
           <HostAlias>api.myCompany.com</HostAlias>
         </HostAliases>
         <Port>443</Port>
         <SSLInfo>
           <Enabled>true</Enabled>
           <ClientAuthEnabled>false</ClientAuthEnabled>
           <KeyStore>ref://myTestKeystoreRef</KeyStore>
           <KeyAlias>myKeyAlias</KeyAlias>
         </SSLInfo>
         <Properties>
           <Property name="proxy_read_timeout">50</Property>
         </Properties>
     </VirtualHost>' \
    -u orgAdminEmail:password

Usuwanie hosta wirtualnego

Zanim usuniesz hosta wirtualnego z otoczenia, musisz zaktualizować wszystkie serwery proxy interfejsu API, które odwołują się do tego hosta, aby usunąć to odwołanie. Zobacz konfigurowanie serwera proxy interfejsu API do korzystania z hosta wirtualnego.

Usuń hosta wirtualnego za pomocą interfejsu API: Usuń hosta wirtualnego:

curl -X DELETE \
  https://api.enterprise.apigee.com/v1/o/org_name/e/env_name/virtualhosts/vhost_name \
  -u orgAdminEmail:password

Wyświetlanie informacji o hostie wirtualnym

Wyświetl informacje o hostach wirtualnych zdefiniowanych w środowisku, jak opisano poniżej.

Edge

Aby wyświetlić informacje o hostie wirtualnym za pomocą interfejsu Edge:

  1. Zaloguj się na stronie apigee.com/edge.

    Klienci korzystający z Edge for Private Cloud używają http://ms-ip:9000 (lokalnie), gdzie ms-ip to adres IP lub nazwa DNS węzła serwera zarządzania.

  2. Na lewym pasku nawigacyjnym kliknij Administracja > Wirtualni gospodarze.
  3. Wybierz środowisko, np. prod lub test.

    Pojawiają się hosty wirtualne zdefiniowane dla środowiska. Jeśli host wirtualny jest skonfigurowany do używania repozytorium kluczy lub repozytorium zaufanych kluczy, kliknij Pokaż, aby wyświetlić więcej informacji.

Jeśli host wirtualny jest skonfigurowany do korzystania z TLS/SSL, obok jego nazwy pojawi się ikona kłódki. Oznacza to, że do Edge został przesłany certyfikat TLS/SSL, klucz i łańcuch certyfikatów oraz powiązano je z hostem wirtualnym. Aby zobaczyć informacje o dostępnych certyfikatach:

  1. Na pasku nawigacyjnym po lewej stronie kliknij Administracja > Środowisko > Sklepy kluczy TLS.
  2. Wybierz środowisko (zwykle prod lub test).
  3. Rozwiń klucze, aby wyświetlić certyfikat.

Classic Edge (Private Cloud)

Aby wyświetlić informacje o hostach wirtualnych za pomocą interfejsu klasycznej przeglądarki Edge:

  1. Zaloguj się na stronie http://ms-ip:9000, gdzie ms-ip to adres IP lub nazwa DNS węzła serwera zarządzania.
  2. Na pasku nawigacyjnym po lewej stronie kliknij Administracja > Wirtualni gospodarze.
  3. Wybierz środowisko, np. prod lub test.
  4. Kliknij kartę Hosty wirtualnych.

    Pojawiają się hosty wirtualne zdefiniowane dla środowiska. Jeśli host wirtualny jest skonfigurowany do używania repozytorium kluczy lub repozytorium zaufanych kluczy, kliknij Pokaż, aby wyświetlić więcej informacji.

    Karta Hosty wirtualnych zawiera informacje o nazwie, porcie i aliasie.

Jeśli host wirtualny jest skonfigurowany do korzystania z TLS/SSL, obok jego nazwy pojawi się ikona kłódki. Oznacza to, że do Edge został przesłany certyfikat TLS/SSL, klucz i łańcuch certyfikatów oraz powiązano je z hostem wirtualnym. Aby zobaczyć informacje o dostępnych certyfikatach:

  1. Na pasku nawigacyjnym u góry kliknij Administracja > Certyfikaty TLS.
  2. Wybierz środowisko (zwykle prod lub test).
  3. Rozwiń klucze, aby wyświetlić certyfikat.

Wyświetlanie hosta wirtualnego za pomocą interfejsu Edge API

Za pomocą interfejsów Edge API możesz też wyświetlać informacje o hostach wirtualnych. Na przykład interfejs API List Virtual Hosts zwraca listę wszystkich hostów wirtualnych:

curl -X GET -H "accept:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts \
    -u orgAdminEmail:pWord

Gdzie orgAdminEmail:pWord to nazwa użytkownika i hasło administratora organizacji, a org_name/env_name to organizacja i środowisko zawierające hosta wirtualnego. Przykładowa odpowiedź:

[
 "default",
 "secure"
]

Aby wyświetlić informacje o konkretnym hostie wirtualnym, użyj interfejsu API Pobierz hosta wirtualnego:

curl -X GET -H "accept:application/xml" \
    https://api.enterprise.apigee.com/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
    -u orgAdminEmail:pWord

Gdzie vhost_name to nazwa hosta wirtualnego. Możesz na przykład ustawić vhost_name jako „secure” (bezpieczny), aby wyświetlić konfigurację domyślnego bezpiecznego hosta wirtualnego utworzonego przez Apigee:

<VirtualHost name="secure">
    <HostAliases>
        <HostAlias>api.myCompany.com</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <Properties/>
    <Interfaces/>
    <RetryOptions/>
    <SSLInfo>
        <ClientAuthEnabled>false</ClientAuthEnabled>
        <Enabled>true</Enabled>
        <KeyAlias>freetrial</KeyAlias>
        <KeyStore>ref://freetrial</KeyStore>
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Konfigurowanie serwera proxy API do korzystania z hosta wirtualnego

Gdy utworzysz nowy serwer proxy interfejsu API, Edge automatycznie skonfiguruje go tak, aby korzystał ze wszystkich dostępnych hostów wirtualnych w organizacji. Żądanie wysłane do serwera proxy API przez hosta wirtualnego ma postać:

https://host-alias/proxy-base-path/resource-path

Gdzie:

  • host-alias to zazwyczaj nazwa DNS hosta wirtualnego.
  • proxy-base-path jest definiowany podczas tworzenia proxy interfejsu API i jest niepowtarzalny dla każdego proxy interfejsu API.
  • resource-path ścieżkę do zasobu dostępnego przez serwer proxy interfejsu API.

Zarządzanie hostami wirtualnymi używanymi przez proxy interfejsu API

W konfiguracji XML serwera proxy interfejsu API używasz tagu virtualhost, aby określić nazwę hosta wirtualnego powiązanego z serwerem proxy interfejsu API:

<HTTPProxyConnection>
  <BasePath>/v1/my/proxy/basepath</BasePath>
  <VirtualHost>secure</VirtualHost>
  <VirtualHost>default</VirtualHost>
</HTTPProxyConnection>

Na przykład <VirtualHost>secure</VirtualHost> oznacza, że klient może wywołać serwer proxy interfejsu API, używając aliasu hosta „bezpiecznego” hosta wirtualnego.

Zwykle modyfikujesz hosty wirtualnych powiązanych z proxy interfejsu API, gdy:

  • Utworzono nowego hosta wirtualnego i masz już serwery proxy API. Aby dodać nowego hosta wirtualnego, musisz edytować wszystkie istniejące proxy interfejsu API.
  • Utwórz nowy serwer proxy interfejsu API, który nie powinien być dostępny przez określony host wirtualny. Aby usunąć z definicji tego hosta wirtualnego, musisz edytować serwer proxy API.

Aby zmodyfikować hosty wirtualnych powiązane z proxy interfejsu API:

  1. Otwórz Edytor proxy interfejsu API, jak opisano poniżej.

    Edge

    Aby uzyskać dostęp do edytora serwera proxy API za pomocą interfejsu Edge:

    1. Zaloguj się na stronie apigee.com/edge.

      Klienci korzystający z Edge for Private Cloud używają http://ms-ip:9000 (lokalnie), gdzie ms-ip to adres IP lub nazwa DNS węzła serwera zarządzania.

    2. Na pasku nawigacyjnym po lewej stronie kliknij Rozwijaj > Proxies API.
    3. Wybierz na liście serwer proxy interfejsu API, który chcesz edytować.

    Classic Edge (Private Cloud)

    Aby uzyskać dostęp do edytora serwera proxy API za pomocą interfejsu klasycznej wersji przeglądarki Edge:

    1. Zaloguj się na stronie http://ms-ip:9000, gdzie ms-ip to adres IP lub nazwa DNS węzła serwera zarządzania.
    2. Na górnym pasku nawigacyjnym kliknij Interfejsy API > Proxies API.
    3. Wybierz na liście serwer proxy interfejsu API, który chcesz edytować.
  2. Kliknij kartę Rozwijanie.
  3. W sekcji Punkty końcowe proxy wybierz domyślny.
  4. W obszarze kodu:
    1. Usuń wszystkie elementy <VirtualHost> dla hostów wirtualnych, które nie są obsługiwane przez serwer proxy interfejsu API.
    2. Dodaj nowy element <VirtualHost> z nazwą nowego hosta wirtualnego. Jeśli np. nowy host wirtualny ma nazwę MyVirtualHost, dodaj ten tag:
      <HTTPProxyConnection>
        <BasePath>/v1/my/proxy/basepath</BasePath>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
        <VirtualHost>MyVirtualHost</VirtualHost>
      </HTTPProxyConnection>
  5. Zapisz serwer proxy interfejsu API. Jeśli usługa proxy interfejsu API została wdrożona, jej zapisanie spowoduje jej ponowne wdrożenie z nowymi ustawieniami.

Konfigurowanie podstawowego adresu URL wyświetlanego przez interfejs Edge w przypadku serwera proxy interfejsu API

Interfejs Edge wyświetla adres URL proxy interfejsu API na podstawie ustawień hosta wirtualnego odpowiadających miejscu wdrożenia proxy. Wyświetlany adres może zawierać numer portu routera hosta wirtualnego.

W większości przypadków adres URL wyświetlany w interfejsie Edge jest prawidłowym adresem URL do wysyłania zewnętrznych żądań do serwera proxy. W przypadku niektórych konfiguracji wyświetlany adres URL jest jednak niepoprawny. Na przykład dowolna z tych konfiguracji może spowodować, że wyświetlany adres URL nie będzie odpowiadać rzeczywistemu adresowi URL używanemu do wysyłania zewnętrznych żądań do serwera proxy:

  • Zakończenie SSL następuje w systemie równoważenia obciążenia
  • Mapowanie portów odbywa się między systemem równoważenia obciążenia a routerami Apigee
  • system równoważenia obciążenia skonfigurowany z wykorzystaniem przekształcania ścieżki;

Edge obsługuje atrybut hosta wirtualnego o nazwie <BaseUrl>, który umożliwia zastąpienie adresu URL wyświetlanego przez interfejs Edge. Oto przykład obiektu hosta wirtualnego z atrybutem <BaseUrl>. W tym przykładzie w interfejsie Edge wyświetla się wartość „http://mojeFirma.com”:

<VirtualHost name="myTLSVHost">
  <HostAliases>
    <HostAlias>api.myCompany.com</HostAlias>
  </HostAliases>
  <BaseUrl>http://myCo.com</BaseUrl>
  <Port>443</Port>
  <SSLInfo>
    <Enabled>true</Enabled>
    <ClientAuthEnabled>false</ClientAuthEnabled>
    <KeyStore>ref://myTestKeystoreRef</KeyStore>
    <KeyAlias>myKeyAlias</KeyAlias>
  </SSLInfo>
</VirtualHost>

Pamiętaj, że wartość <BaseUrl> musi zawierać protokół (np. „http://” lub „https://”).

Jeśli parametr <BaseUrl> nie jest ustawiony, domyślny adres URL renderowany przez interfejs Edge będzie wyglądał tak: „api.mojaFirma.com”, podczas gdy rzeczywisty alias hosta to „http://mojaFirma.com”.