Informacje o hostach wirtualnych

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

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

Host wirtualny umożliwia hostowanie wielu nazw domen na serwerze. W przypadku brzegu serwera serwer odpowiada routerowi brzegowemu. Dzięki zdefiniowaniu w routerze wielu hostów wirtualnych router może obsługiwać żądania interfejsu API wysyłane do wielu nazw domen.

Host wirtualny na Edge definiuje 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 ta ilustracja przedstawia router z 2 definicjami hostów wirtualnych:

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

Podczas wysyłania żądania 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 to żądanie.

Definicje hostów wirtualnych

Hosty wirtualne zawierają te informacje:

  • Wewnętrzna nazwa hosta wirtualnego. Ta nazwa służy do odwoływania się do hosta wirtualnego na serwerach proxy interfejsu API i podczas konfigurowania hosta wirtualnego.
  • Alias hosta hosta wirtualnego. Zwykle alias hosta to nazwa domeny DNS mapowana na adres IP w routerze. Nagłówek Host żądań serwera proxy interfejsu API musi zawierać alias hosta wirtualnego hosta.
  • Otwarty port routera.
  • Określa, czy protokół TLS (dostęp HTTPS) jest włączony (dostęp HTTP).

Na przykład podczas tworzenia hosta wirtualnego podajesz te informacje:

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

W zależności od powyższego ustawienia hosta wirtualnego, żądanie do serwera proxy interfejsu API ma postać:

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

gdzie:

  • Serwer {proxy-base-path} jest definiowany podczas tworzenia serwera proxy interfejsu API i jest unikalny dla każdego serwera proxy interfejsu API. 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 chmury

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

Alias hosta każdego hosta wirtualnego udostępnionego przez Apigee zawiera nazwę organizacji i środowiska zgodnie z tą tabelą:

Środowisko Nazwa hosta wirtualnego Alias hosta Port Włączono TLS
produkcyjne domyślnie {org-name}-prod.apigee.net 80 Nie
Bezpieczny {org-name}-prod.apigee.net 443 Tak
test domyślnie {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”. Dlatego, aby uzyskać dostęp do serwera proxy interfejsu API w tej organizacji, używasz adresu URL w takiej formie:

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

Płatne abonamenty Apigee: nazwa domeny zawierająca „apigee.net” może nie być tym, co chcesz ujawniać klientom. Za pomocą wpisu DNS i rekordu CNAME możesz zmapować nazwę domeny na swoją organizację w Edge. Musisz też utworzyć hosta wirtualnego z aliasem hosta ustawionym na tę nazwę domeny. Da to deweloperom dostęp do interfejsu API przez domenę specyficzną 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 dla Private Cloud nie są dla Ciebie tworzone żadne domyślne organizacje, środowiska ani hosty wirtualne. Po zakończeniu procesu instalacji Edge Twoim pierwszym działaniem jest zwykle utworzenie organizacji, środowiska i hosta wirtualnego w ramach procesu wprowadzenia.

Aby przeprowadzić wprowadzenie, uruchom to polecenie w węźle serwera zarządzania brzegowym:

/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.

Możesz na przykład utworzyć:

  • wybrany przez Ciebie użytkownik, który ma pełnić funkcję administratora organizacji;
  • Organizacja o nazwie example
  • Środowisko w organizacji o nazwie prod
  • Host wirtualny w środowisku o nazwie default, który zezwala na 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 postaci IP:9001.

Do lokalnej wersji Edge możesz dodać dowolną liczbę organizacji, środowisk i hostów wirtualnych. Aby dowiedzieć się więcej, zobacz:

Hosty wirtualne są otwarte w routerze brzegowym. Dlatego musisz się upewnić, że port podany dla hosta wirtualnego jest otwarty w routerze. Aby otworzyć port, możesz użyć polecenia w tym formularzu:

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 postaci:

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 zgodnym z nazwą domeny wpisu DNS. W przykładzie powyżej podczas tworzenia hosta wirtualnego trzeba określić alias hosta myAPI.myCo.com.

Informacje o aliasach hostów i nazwach DNS

Jedną z właściwości ustawionych dla hosta wirtualnego jest alias hosta. Alias hosta to zwykle nazwa DNS hosta wirtualnego. Sposób ustawiania aliasu hosta zależy od typu instalacji brzegowej: chmury lub chmury prywatnej.

Aliasy hostów i nazwy DNS w Edge dla Cloud

Gdy po raz pierwszy tworzysz organizację Edge dla chmury, Apigee automatycznie tworzy 2 środowiska (test i prod), 2 hosty wirtualne w każdym środowisku (domyślny i bezpieczny) oraz rekordy DNS dla każdego hosta wirtualnego.

Alias hosta hostów wirtualnych zawiera nazwę organizacji i środowiska. W związku z tym żądanie wysłane za pośrednictwem 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 lepiej jest tworzyć hosty wirtualne korzystające z nazwy Twojej 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ę sposobu przetwarzania żądania do interfejsu API przez Edge:

W tym przykładzie:

  • api.acme.com to żądana nazwa domeny.
  • Definiujesz wpis DNS i rekord CNAME wskazujący adres 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 obsługuje to żądanie.

W tym przykładzie w definicji hosta wirtualnego podasz te informacje:

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

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

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

Podobnie jak w przypadku Edge dla Cloud, tworzysz hosty wirtualne z własną nazwą domeny dla aliasu hosta. Następnie musisz utworzyć 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 usługa Cloud Apigee automatycznie tworzyła nazwy DNS dla organizacji w formie:

  • 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 dla chmury prywatnej musisz utworzyć wpisy DNS dla adresu IP i portu routera.

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

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

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

W tym przykładzie:

  • api.acme.com to żądana nazwa domeny.
  • 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 obsługuje to żądanie.

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

Aliasy hostów i symbole wieloznaczne

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.

Poniżej znajdziesz przykład prawidłowego aliasu hosta z użyciem symbolu wieloznacznego:

*.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 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.

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

Właściwości 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 w Google Cloud czy Edge w przypadku chmury prywatnej. Jeśli używasz Edge dla Private Cloud, lista dostępnych właściwości zależy również od wersji Edge. 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 dla określonej wersji Edge znajdziesz w tych artykułach: