Konfigurowanie hostów wirtualnych dla chmury prywatnej

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

W instalacji lokalnej masz pełną kontrolę nad hostami wirtualnymi. Możesz tworzyć hosty wirtualne dla dowolnej organizacji i w dowolnym środowisku, z TLS lub bez.

Z tego dokumentu dowiesz się, jak utworzyć prostego hosta wirtualnego. Czyli takiego, który nie obsługuje TLS. Więcej przykładów, w tym przykładów tworzenia hostów wirtualnych obsługujących TLS, znajdziesz w artykule Konfigurowanie dostępu TLS do interfejsu API w chmurze prywatnej.

Więcej informacji:

Informacje o aliasach hostów

Podczas tworzenia hosta wirtualnego musisz określić jego alias. Zwykle jest to nazwa DNS hosta wirtualnego.

Router Edge porównuje nagłówek Host przychodzącego żądania z listą dostępnych aliasów hostów, aby określić serwer proxy interfejsu API, który będzie obsługiwać żądanie. Podczas wysyłania żądania przez hosta wirtualnego podaj nazwę domeny, która pasuje do aliasu hosta wirtualnego, lub adres IP routera i nagłówek Host zawierający alias hosta.

Jeśli na przykład utworzysz hosta wirtualnego z aliasem myapis.apigee.net na porcie 9001, żądanie cURL do interfejsu API przez tego hosta wirtualnego może mieć jedną z tych postaci:

  • Jeśli masz wpis DNS dla myapis.apigee.net:

    curl http://myapis.apigee.net:9001/proxy-base-path/resource-path
  • Jeśli nie masz wpisu DNS dla myapis.apigee.net:

    curl http://routerIP:9001/proxy-base-path/resource-path -H 'host:myapis.apigee.net'

    W tej postaci podajesz adres IP routera i przekazujesz alias hosta w nagłówku Host.

    curl http://routerIP:9001/proxy-base-path/resource-path

Opcje, gdy nie masz wpisu DNS dla hosta wirtualnego

Jeśli nie masz wpisu DNS, możesz ustawić alias hosta na adres IP routera i port hosta wirtualnego, np. routerIP:port.

192.168.1.31:9001

Gdy wykonasz polecenie curl w postaci:

curl http://routerIP:9001/proxy-base-path/resource-path

Ta opcja jest preferowana, ponieważ dobrze współpracuje z interfejsem Edge.

Jeśli masz kilka routerów, dodaj alias hosta dla każdego z nich, podając adres IP każdego routera i port hosta wirtualnego.

Możesz też ustawić alias hosta na wartość, np. temp.hostalias.com. Następnie musisz przekazać nagłówek Host w każdym żądaniu:

curl -v http://routerIP:9001/proxy-base-path/resource-path -H 'Host: temp.hostalias.com'

Możesz też dodać alias hosta do pliku /etc/hosts. Na przykład dodaj ten wiersz do pliku /etc/hosts:

192.168.1.31 temp.hostalias.com

Następnie możesz wysłać żądanie tak, jakbyś miał wpis DNS:

curl -v http://myapis.apigee.net:9001/proxy-base-path/resource-path

Informacje o portach hostów wirtualnych w Edge for Private Cloud 4.16.01 i nowszych wersjach

Podczas tworzenia hosta wirtualnego określasz port routera używany przez hosta wirtualnego. Na przykład port 9001.

W Apigee for Private Cloud w wersji 4.16.01 i nowszych router domyślnie 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.

Tworzenie hostów wirtualnych

W tej sekcji opisujemy, jak tworzyć hosty wirtualne w Apigee Edge for Private Cloud. Pamiętaj, że aby utworzyć nowego hosta wirtualnego, musisz być administratorem organizacji.

Hosty wirtualne w Apigee Edge for Private Cloud możesz tworzyć za pomocą interfejsu API lub interfejsu Edge. Opisujemy je w kolejnych sekcjach.

Tworzenie hosta wirtualnego za pomocą przeglądarki

W tej sekcji opisujemy, jak utworzyć hosta wirtualnego za pomocą przeglądarki (tylko w interfejsie Edge).

Aby utworzyć nowego hosta wirtualnego w interfejsie Edge:

  1. Zaloguj się w interfejsie zarządzania Edge.
  2. Wybierz Administracja > Hosty wirtualne.
  3. Wybierz środowisko z listy.

    Edge wyświetli listę hostów wirtualnych w tym środowisku.

  4. Aby utworzyć nowego hosta wirtualnego, kliknij + Host wirtualny.

    Edge wyświetli formularz Utwórz hosta wirtualnego.

    Możesz też kliknąć nazwę istniejącego hosta wirtualnego, aby go edytować.

  5. Zdefiniuj nowego hosta wirtualnego. Pamiętaj, że pole Podstawowy adres URL musi zawierać protokół (czyli wartość pola musi zaczynać się od „http://” lub „https://”).

    Pamiętaj też, że:

    • Możesz utworzyć nieograniczoną liczbę hostów wirtualnych.
    • TLS jest opcjonalny i może być w wersji 1.0, 1.1 lub 1.2.
    • Port hosta wirtualnego można skonfigurować.
  6. Aby zapisać nowego hosta wirtualnego, kliknij przycisk Utwórz.

Tworzenie hosta wirtualnego za pomocą interfejsu API

Aby utworzyć hosta wirtualnego za pomocą interfejsu API, utwórz obiekt XML, który definiuje hosta wirtualnego. Na przykład ten obiekt XML definiuje hosta wirtualnego, który używa protokołu HTTP:

<VirtualHost name="myVHost">
   <HostAliases>
     <HostAlias>DNS_name_or_IP:port</HostAlias>
   </HostAliases>
   <Interfaces/>
   <Port>9005</Port>
</VirtualHost>

Zwróć uwagę, że host wirtualny zawiera właściwość name. Wartość właściwości name służy do konfigurowania serwera proxy interfejsu API pod kątem korzystania z hosta wirtualnego.

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

http://routerIP:port/proxy-base-path/resource-path
https://routerIP:port/proxy-base-path/resource-path

Gdzie:

  • http lub https: jeśli host wirtualny jest skonfigurowany do obsługi TLS, użyj HTTPS. Jeśli host wirtualny nie obsługuje TLS, użyj HTTP.
  • routerIP:port to adres IP i numer portu hosta wirtualnego.
  • proxy-base-path i resource-path są definiowane podczas tworzenia serwera proxy interfejsu API.

Zwykle nie publikujesz interfejsów API dla klientów z adresem IP i numerem portu. Zamiast tego definiujesz wpis DNS dla routera i portu. Na przykład:

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

Jeśli zdefiniujesz wpis DNS, musisz utworzyć alias hosta dla hosta wirtualnego który będzie pasować do nazwy domeny wpisu DNS. Alias hosta musi być zgodny z ciągiem znaków, który klient przekazuje w nagłówku Host. W powyższym przykładzie należy określić alias hosta api.myCompany.com.

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

Aby utworzyć hosta wirtualnego, który używa protokołu HTTP, wykonaj te czynności:

  1. Utwórz hosta wirtualnego za pomocą interfejsu API Create a Virtual Host (Utwórz hosta wirtualnego), gdzie ms-IP to adres IP lub nazwa domeny węzła serwera zarządzania:
    $ curl -X POST -H "Content-Type:application/xml" \
    http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts \
    -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9005</Port>
      </VirtualHost>' \
    -u sysAdminEmail:password
  2. Utwórz rekord DNS dla hosta wirtualnego, który pasuje do aliasu hosta.
  3. Jeśli masz już serwery proxy interfejsu API, dodaj hosta wirtualnego do elementu <HTTPConnection> w punkcie końcowym serwera proxy. Host wirtualny jest automatycznie dodawany do wszystkich nowych serwerów proxy interfejsu API. Więcej informacji znajdziesz w artykule Konfigurowanie serwera proxy interfejsu API pod kątem korzystania z hosta wirtualnego.

Modyfikowanie hosta wirtualnego

Aby zmodyfikować hosta wirtualnego, wykonaj te czynności:

  1. Zaktualizuj hosta wirtualnego za pomocą interfejsu API Update a Virtual Host, gdzie <ms-IP> to adres IP lub nazwa domeny węzła serwera zarządzania. W treści żądania musisz podać pełną definicję hosta wirtualnego a nie tylko elementy, które chcesz zmienić. W tym przykładzie zmieniasz numer portu hosta wirtualnego z 9008 na 9009:

    curl -X PUT -H "Content-Type:application/xml" \
      http://ms-IP:8080/v1/o/org_name/environments/env_name/virtualhosts/vhost_name \
      -d '<VirtualHost name="newVHost">
        <HostAliases>
          <HostAlias>api.myCompany.com</HostAlias>
        </HostAliases>
        <Interfaces/>
        <Port>9009</Port>
      </VirtualHost>' \
      -u email:password
  2. Tylko w Edge for Private Cloud w wersji 4.16.01 i 4.16.05: jeśli zmodyfikujesz istniejącego hosta wirtualnego i włączysz lub wyłączysz TLS bez zmiany numeru portu, wykonaj te czynności:
    1. Zatrzymaj router:

      /opt/apigee/apigee-service/bin/apigee-service edge-router stop
    2. Usuń wszystkie pliki w katalogu /opt/nginx/conf.d:

      rm -f /opt/nginx/conf.d/*
    3. Uruchom router:

      /opt/apigee/apigee-service/bin/apigee-service edge-router start
    4. Powtórz te czynności w przypadku wszystkich routerów.