Informacje o hostach wirtualnych

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

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

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 router może obsługiwać żądania interfejsu API dla wielu nazw domen.

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

Na przykład na ilustracji poniżej widać router z 2 definicjami hosta wirtualnego:

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

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

Definicje hostów wirtualnych

Wirtualni gospodarze zawierają te informacje:

  • Wewnętrzna nazwa hosta wirtualnego. Używasz tej nazwy, aby odwoływać się do hosta wirtualnego w przejściówkach interfejsu API i podczas konfigurowania hosta wirtualnego.
  • Alias hosta hosta wirtualnego. Zazwyczaj alias hosta to nazwa domeny DNS, która jest mapowana na adres IP na routerze. Nagłówek Host w żądaniach proxy interfejsu API musi zawierać alias hosta hosta wirtualnego.
  • Otwarty port na routerze.
  • Czy protokół TLS (dostęp HTTPS) jest włączony, czy nie (dostęp HTTP).

Podczas tworzenia hosta wirtualnego musisz podać te informacje:

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

Na podstawie ustawień hosta wirtualnego żądanie wysłane do serwera proxy API ma postać:

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

gdzie:

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

Informacje o hostach wirtualnych w Edge dla Cloud

Każda organizacja Edge zawiera automatycznie 2 środowiska (test i prod), 2 wirtualne hosty w każdym środowisku (domyślny i bezpieczny) 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 poniższej tabeli:

Środowisko Nazwa wirtualnego hosta 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 serwera 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ć klientom. Za pomocą wpisu DNS i rekordu CNAME możesz zmapować nazwę domeny na swoją organizację w Edge. Musisz też utworzyć hosta wirtualnego z ustawionym aliasem hosta na tę nazwę domeny. Dzięki temu deweloperzy będą mieć dostęp do Twojego interfejsu API przez domenę Twojej firmy.

Oto przykład domeny niestandardowej w Edge:

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

Wirtualni hostowie w Edge for Private Cloud

Gdy zainstalujesz Apigee Edge dla Private Cloud, nie zostaną dla Ciebie utworzone żadne domyślne organizacje, środowiska ani hosty wirtualne. Po zakończeniu procesu instalacji Edge pierwszym krokiem jest zazwyczaj utworzenie organizacji, środowiska i hosta wirtualnego w ramach procesu „wprowadzania”.

Aby przeprowadzić wdrożenie, uruchom to polecenie na węźle serwera Edge Management:

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

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

Możesz na przykład utworzyć:

  • wybranym przez Ciebie użytkownikiem pełniącym funkcję administratora organizacji.
  • organizacja o nazwie example,
  • środowisko w organizacji o nazwie prod
  • host wirtualny w środowisku o nazwie default, który umożliwia dostęp HTTP na porcie 9001.
  • Alias hosta nazwy DNS używanej do uzyskiwania dostępu do routera lub adres IP routera i port hosta wirtualnego w formacie IP:9001.

Później możesz dodać dowolną liczbę organizacji, środowisk i hostów wirtualnych do wersji Edge na komputerze lokalnym. Aby dowiedzieć się więcej, zobacz:

Wirtualni hostowie są otwierani na routerze Edge. Dlatego musisz się upewnić, że port podany dla hosta wirtualnego jest otwarty na routerze. Port możesz otworzyć za pomocą polecenia w poniższym formularzu:

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

Po wykonaniu tego polecenia możesz uzyskać dostęp do interfejsów API, używając 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}

Podczas definiowania wpisu DNS musisz też utworzyć hosta wirtualnego z aliasem hosta, który pasuje do nazwy domeny wpisu DNS. W przykładzie powyżej podczas tworzenia hosta wirtualnego należy podać alias hosta myAPI.myCo.com.

Aliasy hostów i nazwy DNS

Jedną z usług ustawianych dla hosta wirtualnego jest alias hosta. Alias hosta to zwykle nazwa DNS hosta wirtualnego. Sposób ustawiania aliasu hosta zależy od typu instalacji Edge: Cloud lub Private Cloud.

Aliasy hosta i nazwy DNS w Edge for the Cloud

W Edge for the Cloud, gdy po raz pierwszy tworzysz organizację Edge, Apigee automatycznie tworzy 2 środowiska (test i prod), 2 wirtualnych hostów w każdym środowisku (domyślny i bezpieczny) oraz rekordy DNS dla każdego wirtualnego hosta.

Alias hosta hostów wirtualnych zawiera nazwę organizacji i środowiska. Dlatego żądanie wysłane przez hosta wirtualnego ma taki format:

  • 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 lepiej jest tworzyć hosty wirtualne, które będą używać nazwy Twojej domeny zamiast domyślnej domeny apigee.net. Aby to zrobić, musisz najpierw utworzyć własny wpis DNS i rekord CNAME.

Na rysunku poniżej widać typową konfigurację sposobu przetwarzania żądania interfejsu API przez przeglądarkę Edge:

W tym przykładzie:

  • api.acme.com to żądana nazwa domeny.
  • Musisz zdefiniować wpis DNS i rekord CNAME, aby przekierować domenę api.acme.com na domenę 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 podajesz te informacje:

  • name = myvhost
  • alias hosta = apis.acme.com
  • port = 443
  • Włączanie dostępu TLS

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

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

Podobnie jak w przypadku Edge for the Cloud, tworzysz hosty wirtualnych, które używają własnej nazwy domeny jako aliasu hosta. Następnie utwórz 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 tworzone są nazwy DNS dla organizacji w formacie:

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

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

Na przykład w definicji hosta wirtualnego podajesz te informacje:

  • name = myvhost
  • alias hosta = apis.acme.com
  • port = 9001
  • Włączanie dostępu TLS

Na rysunku poniżej widać typową konfigurację przetwarzania żądania interfejsu API przez przeglądarkę Edge:

W tym przykładzie:

  • api.acme.com to nazwa domeny, której chcesz użyć.
  • Definiujesz wpis DNS i rekord CNAME wskazujący adres 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 Private Cloud.

Aliasy hostów i symbole wieloznaczne

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

Poniżej znajdziesz 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 pozwala serwerom proxy interfejsu API obsługiwać wywołania adresowane 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 tylko 1 host wirtualny.

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

Właściwości wirtualnego gospodarza

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 Private Cloud. Jeśli używasz przeglądarki Edge w chmurze prywatnej, lista dostępnych usług zależy też od wersji przeglądarki. Pełny opis wszystkich właściwości hosta wirtualnego znajdziesz w dokumentacji właściwości hosta wirtualnego.

Więcej informacji o tworzeniu hostów wirtualnych na potrzeby konkretnej wersji Edge znajdziesz tutaj: