Informacje o hostach wirtualnych

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

W Edge router obsługuje cały przychodzący ruch API. Oznacza to, że wszystkie żądania HTTP i HTTPS do proxy interfejsu API są najpierw obsługiwane przez router Edge.

Host wirtualny umożliwia hostowanie wielu nazw domen na serwerze. W przypadku Edge serwer odpowiada routerowi Edge. Dzięki zdefiniowaniu wielu hostów wirtualnych na routerze, może on obsługiwać żądania API kierowane do wielu nazw domen.

Host wirtualny w Edge określa protokół dostępu (HTTP lub HTTPS), otwarty port routera i alias hosta. Alias hosta jest zwykle nazwą domeny DNS, która jest mapowana na adres IP routera.

Na przykład na tym obrazie widać router z 2 definicjami hosta wirtualnego:

Pierwszy host wirtualny obsługuje żądania HTTPS w domenie domainName1, a drugi – żądania HTTP w domenie domainName2.

W przypadku żądania do proxy interfejsu API router porównuje nagłówek Host żądania przychodzącego z listą aliasów hostów zdefiniowanych przez wszystkie hosty wirtualne, aby określić, który host wirtualny ma obsłużyć żądanie.

Informacje o definicjach hostów wirtualnych

Hosty wirtualne zawierają te informacje:

  • Wewnętrzna nazwa hosta wirtualnego. Używasz tej nazwy, aby odwoływać się do hosta wirtualnego w proxy interfejsu API i podczas konfigurowania hosta wirtualnego.
  • Alias hosta hosta wirtualnego. Alias hosta jest zwykle nazwą domeny DNS która jest mapowana na adres IP routera. Nagłówek Host żądań proxy interfejsu API musi zawierać alias hosta hosta wirtualnego.
  • Otwarty port na routerze.
  • Informacje o tym, czy protokół TLS (dostęp przez HTTPS) jest włączony (dostęp przez HTTP).

Podczas tworzenia hosta wirtualnego podajesz na przykład te informacje:

  • name = myvhost
  • host alias = apis.acme.com
  • port = 443
  • TLS jest włączony

Na podstawie powyższego ustawienia hosta wirtualnego żądanie do proxy interfejsu API ma postać:

https://apis.acme.com/{proxy-base-path}/{resource-path}

gdzie:

  • {proxy-base-path} jest definiowany podczas tworzenia proxy interfejsu API i jest unikalny dla każdego proxy interfejsu API. Na przykład:
    https://apis.acme.com/characters
  • {resource-path} to ścieżka do zasobu dostępnego przez proxy interfejsu API. Na przykład:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

Informacje o hostach wirtualnych w Edge for the Cloud

Każda organizacja Edge automatycznie zawiera 2 środowiska (test i prod), 2 hosty wirtualne w każdym środowisku (default i secure), oraz rekordy DNS dla każdego aliasu hosta.

Alias hosta każdego hosta wirtualnego udostępnianego przez Apigee zawiera nazwę organizacji i środowiska, jak pokazano w tej tabeli:

Środowisko Nazwa hosta wirtualnego Alias hosta Port TLS włączony
produkcyjne domyślna {org-name}-prod.apigee.net 80 Nie
Bezpieczny {org-name}-prod.apigee.net 443 Tak
test domyślna {org-name}-test.apigee.net 80 Nie
Bezpieczny {org-name}-test.apigee.net 443 Tak

Na przykład domyślna nazwa domeny organizacji o nazwie "myorg" w środowisku prod to "myorg-prod.apigee.net". Aby uzyskać dostęp do proxy interfejsu API w tej organizacji, użyj adresu URL w formacie:

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

Płatne plany Apigee: nazwa domeny zawierająca "apigee.net" może nie być tym, co chcesz udostępnić swoim klientom. Możesz użyć wpisu DNS i rekordu CNAME, aby zmapować nazwę domeny na swoją organizację w Edge. Musisz też utworzyć hosta wirtualnego z aliasem hosta ustawionym na tę nazwę domeny. Dzięki temu deweloperzy mogą uzyskiwać dostęp do Twojego interfejsu API za pomocą domeny specyficznej dla Twojej firmy.

Oto przykład domeny niestandardowej w Edge:

https://apis.acme.com/{proxy-base-path}/{resource-path}

Informacje o hostach wirtualnych w Edge for Private Cloud

Po zainstalowaniu Apigee Edge for Private Cloud nie są tworzone domyślne organizacje, środowiska ani hosty wirtualne. Po zakończeniu procesu instalacji Edge zwykle pierwszym krokiem jest utworzenie organizacji, środowiska i hosta wirtualnego w ramach procesu "wdrażania".

Aby przeprowadzić wdrażanie, uruchom to polecenie w węźle serwera zarządzania Edge:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

gdzie configFile zawiera informacje niezbędne do utworzenia użytkownika, organizacji, środowiska i hosta wirtualnego.

Na przykład tworzysz:

  • użytkownika, który będzie pełnił funkcję administratora organizacji;
  • organizację o nazwie example;
  • środowisko w organizacji o nazwie prod;
  • hosta wirtualnego w środowisku o nazwie default, który umożliwia dostęp przez HTTP na porcie 9001;
  • alias hosta nazwy DNS używanej do uzyskiwania dostępu do routera lub adresu IP routera i portu hosta wirtualnego w formacie IP:9001.

Później możesz dodać dowolną liczbę organizacji, środowisk i hostów wirtualnych do swojej lokalnej wersji Edge. Więcej informacji znajdziesz w tych artykułach:

Hosty wirtualne są otwierane na routerze Edge. Dlatego musisz się upewnić, że port, który określisz dla hosta wirtualnego, jest otwarty na routerze. Aby otworzyć port, możesz użyć polecenia w tym formacie:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

Po uruchomieniu tego polecenia możesz uzyskać dostęp do interfejsów API za pomocą adresu URL w formacie:

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

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://myAPI.myCo.com/{proxy-base-path}/{resource-path}

Gdy zdefiniujesz wpis DNS, musisz też utworzyć hosta wirtualnego z aliasem hosta, który odpowiada nazwie domeny wpisu DNS. W powyższym przykładzie podczas tworzenia hosta wirtualnego określisz alias hosta myAPI.myCo.com.

Informacje o aliasach hostów i nazwach DNS

Jedną z właściwości, którą ustawiasz dla hosta wirtualnego, jest alias hosta. Alias hosta jest zwykle nazwą DNS hosta wirtualnego. Sposób ustawienia aliasu hosta zależy od typu instalacji Edge: Cloud lub Private Cloud.

Aliasy hostów i nazwy DNS w Edge for the Cloud

W Edge for the Cloud, gdy po raz pierwszy utworzysz organizację Edge, Apigee automatycznie utworzy 2 środowiska (test i prod), 2 hosty wirtualne w każdym środowisku (default i secure) oraz rekordy DNS dla każdego hosta wirtualnego.

Alias hosta hostów wirtualnych zawiera nazwę organizacji i środowiska. Dlatego żądanie przez hosta wirtualnego ma postać:

  • http://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • http://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}

Zwykle chcesz tworzyć hosty wirtualne, które używają Twojej nazwy domeny, zamiast domyślnej domeny apigee.net. Aby to zrobić, musisz najpierw utworzyć własny wpis DNS i rekord CNAME.

Poniższy rysunek przedstawia typową konfigurację przetwarzania żądania do interfejsu API przez Edge:

W tym przykładzie:

  • api.acme.com to wybrana nazwa domeny.
  • Definiujesz wpis DNS i rekord CNAME, aby przekierować api.acme.com na acme-prod.apigee.net.
  • Żądanie zawiera nagłówek Host, którego router używa do określenia hosta wirtualnego, który ma obsłużyć żądanie.

W tym przykładzie w definicji hosta wirtualnego określasz te informacje:

  • name = myvhost
  • host alias = apis.acme.com
  • port = 443
  • Włącz dostęp przez TLS

Więcej informacji znajdziesz w artykule Konfigurowanie hostów wirtualnych w chmurze.

Aliasy hostów i nazwy DNS w Edge for Private Cloud

Podobnie jak w Edge for the Cloud, tworzysz hosty wirtualne, które używają Twojej nazwy domeny jako aliasu hosta. Następnie tworzysz własny wpis DNS i rekord CNAME, aby uzyskać dostęp do tych hostów wirtualnych.

Jedną z różnic między chmurą a chmurą prywatną jest to, że w chmurze Apigee automatycznie tworzy nazwy DNS dla Twoich organizacji w formacie:

  • name=default: http://{org-name}-{env-name}.apigee.net (port routera 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (port routera 443)

W Edge for the Private Cloud musisz utworzyć wpisy DNS dla adresu IP i portu routera.

Na przykład w definicji hosta wirtualnego określasz te informacje:

  • name = myvhost
  • host alias = apis.acme.com
  • port = 9001
  • Włącz dostęp przez TLS

Poniższy rysunek przedstawia typową konfigurację przetwarzania żądania do interfejsu API przez Edge:

W tym przykładzie:

  • api.acme.com to wybrana nazwa domeny.
  • Definiujesz wpis DNS i rekord CNAME, aby przekierować api.acme.com na adres IP i port routera.
  • Żądanie zawiera nagłówek Host, którego router używa do określenia hosta wirtualnego, który ma obsłużyć żądanie.

Więcej informacji znajdziesz w artykule Konfigurowanie hostów wirtualnych w chmurze prywatnej.

Aliasy hostów i symbole wieloznaczne

W aliasie hosta możesz użyć symbolu wieloznacznego „*”. Symbol wieloznaczny „*” może znajdować się tylko na początku aliasu hosta (przed pierwszą kropką „.”) i nie może być mieszany z innymi znakami.

Oto przykład prawidłowego aliasu hosta z symbolem wieloznacznym:

*.example.com

Te przykłady są nieprawidłowe:

  www.*.example.com
  w*.example.com

Użycie symbolu wieloznacznego w aliasie hosta wirtualnego umożliwia proxy interfejsu API obsługę wywołań kierowanych do wielu subdomen, takich jak alpha.example.com, beta.example.com, czy live.example.com. Użycie 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 liczy się tylko jako 1 host wirtualny.

Certyfikat TLS hosta wirtualnego musi mieć pasujący symbol wieloznaczny w nazwie CN certyfikatu. Na przykład *.example.com.

Informacje o właściwościach hosta wirtualnego

W Edge host wirtualny jest reprezentowany przez obiekt XML. Na przykład ten obiekt XML definiuje hosta wirtualnego:

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <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>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Lista właściwości, które możesz ustawić, zależy od tego, czy używasz Edge for the Cloud czy Edge for the Private Cloud. Jeśli używasz Edge for the Private Cloud, lista dostępnych właściwości zależy też od wersji Edge. Pełny opis wszystkich właściwości hosta wirtualnego znajdziesz w artykule Informacje o właściwościach hosta wirtualnego.

Więcej informacji o tworzeniu hostów wirtualnych w konkretnej wersji Edge znajdziesz w tych artykułach: