Property-Referenz für virtuelle Hosts

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Darstellung virtueller Hosts

Das XML-Objekt, das Sie zum Definieren eines virtuellen Hosts verwenden, basiert auf Ihrer Edge-Version: Cloud oder Private Cloud.

Wenn Sie ein Private Cloud-Kunde sind, müssen Sie sicherstellen, dass Sie den richtigen XML-Code für Ihre Edge-Version verwenden.

Cloud und Private Cloud 4.17.01 und höher

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <BaseUrl>http://myCo.com</BaseUrl>
    <OCSPStapling>offOn</OCSPStapling>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    </Interfaces>
    <RetryOptions>
        <RetryOption>option</RetryOption>
    </RetryOptions>
    <ListenOptions>
        <ListenOption>option</ListenOption>
    </ListenOptions>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <!-- UseBuiltInFreeTrialCert is for Edge Cloud only -->
    <UseBuiltInFreeTrialCert>trueFalse</UseBuiltInFreeTrialCert>
    <PropagateTLSInformation>
        <!-- PropagateTLSInformation is Alpha in the Cloud only -->
        <ConnectionProperties>trueFalse</ConnectionProperties>
        <ClientProperties>trueFalse</ClientProperties>
    </PropagateTLSInformation>
    <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>
        <!-- ssl_protocols is Private Cloud only -->
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

Private Cloud 4.16.01 bis 4.16.09

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

Private Cloud 4.15.07 und älter

<VirtualHost name="vhostName">
    <Port>portNumber</Port>
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <Interface>interfaceName</Interface>
    </Interfaces>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>keystore</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>truststore</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
        <Ciphers>
             <Cipher>cipher</Cipher>
             <Cipher>cipher</Cipher>
         </Ciphers>
         <Protocols>
             <Protocol>protocol</Protocol>
             <Protocol>protocol</Protocol>
         </Protocols>
    </SSLInfo>
</VirtualHost>

Attribute der Konfiguration des virtuellen Hosts

In der folgenden Tabelle sind die Attribute aufgeführt, mit denen Sie einen virtuellen Host konfigurieren:

Attribute Beschreibung Standard Erforderlich
VirtualHost

Gibt den Namen des virtuellen Hosts an. Mit diesem Namen können Sie beim Konfigurieren eines API-Proxys auf den virtuellen Host verweisen.

Folgende Zeichen sind im Namensattribut zulässig: A-Z0-9._\-$%.

Keine Ja
Port

Gibt die Portnummer an, die vom virtuellen Host verwendet wird. Achten Sie darauf, dass der Port auf dem Edge Router offen ist.

Wenn Sie einen Port in einem hostalias-Element angeben, muss die von <Port> angegebene Portnummer damit übereinstimmen.

Für die Cloud: Sie müssen beim Erstellen eines virtuellen Hosts Port 443 angeben. Wenn keine Angabe gemacht wird, wird der Port standardmäßig auf 443 festgelegt. Wenn Sie bereits einen virtuellen Host haben, der einen anderen Port als 443 verwendet, können Sie den Port nicht ändern.

Für die Private Cloud-Releases 4.16.01 bis 4.17.05:Beim Erstellen eines virtuellen Hosts geben Sie den vom virtuellen Host verwendeten Router-Port an. Beispiel: Port 9001. Standardmäßig wird der Router als Nutzer „apigee“ ausgeführt, der keinen Zugriff auf privilegierte Ports hat. Dies sind normalerweise die Ports 1024 und niedriger. Wenn Sie einen virtuellen Host erstellen möchten, der den Router an einen geschützten Port bindet, müssen Sie ihn so konfigurieren, dass er als Nutzer mit Zugriff auf diese Ports ausgeführt wird. Weitere Informationen finden Sie unter Virtuellen Host einrichten.

Für Private Cloud-Releases vor 4.16.01: Ein Router kann nur eine HTTPS-Verbindung pro virtuellem Host auf einem bestimmten Port mit dem angegebenen Zertifikat überwachen. Daher können mehrere virtuelle Hosts nicht dieselbe Portnummer verwenden, wenn die TLS-Beendigung auf dem Router am angegebenen Port erfolgt.

Keine Ja
BaseUrl Überschreibt die URL, die von der Edge-Benutzeroberfläche für einen API-Proxy angezeigt wird, der auf dem virtuellen Host bereitgestellt wird. Nützlich, wenn sich vor den Edge Routern ein externer Load-Balancer befindet. Weitere Informationen finden Sie unter TLS-Zugriff auf eine API für die Private Cloud konfigurieren.

Der Wert von BaseUrl muss das Protokoll enthalten (d.h. „http://“ oder „https://“.

Keine Nein
OCSPStapling

Ein OCSP-Client (Online Certificate Status Protocol) sendet eine Statusanfrage an einen OCSP-Antwortdienst, um festzustellen, ob das TLS-Zertifikat gültig ist. Die Antwort zeigt an, ob das TLS-Zertifikat gültig und nicht widerrufen ist.

Wenn das OCSP-Stapling aktiviert ist, kann Edge als TLS-Server für One-Way-TLS direkt den OCSP-Antwortdienst abfragen und die Antwort dann im Cache speichern. Edge gibt diese Antwort dann im Rahmen des TLS-Handshakes an den TLS-Client zurück oder haftet sie. Weitere Informationen finden Sie unter OCSP-Stapling auf Ihrem Server aktivieren.

TLS muss aktiviert sein, um das OCSP-Stapling zu aktivieren. Legen Sie zum Aktivieren on fest. Der Standardwert ist off.

deaktiviert Nein
HostAliases
HostAlias

Der öffentlich sichtbare DNS-Name des virtuellen Hosts auf dem Router, optional einschließlich der Portnummer. Die Kombination aus Hostaliasname und Portnummer für den virtuellen Host muss für alle virtuellen Hosts in der Edge-Installation eindeutig sein. Das bedeutet, dass mehrere virtuelle Hosts dieselbe Portnummer verwenden können, wenn sie unterschiedliche Hostaliasse haben.

Sie müssen einen DNS-Eintrag und einen CNAME-Eintrag erstellen, der mit dem Hostalias übereinstimmen. Der Hostalias muss mit dem String übereinstimmen, den der Client im Host-Header übergibt.

Die Portnummer in HostAlias ist optional. Wenn Sie den Port als Teil des Hostalias angeben, müssen Sie denselben Port auch mithilfe des Elements <Port> angeben. Sie können auch zwei HostAlias-Elemente angeben, eines mit und eines ohne Portnummer.

Sie können mehrere HostAlias-Definitionen in derselben virtuellen Hostdefinition haben, die mehreren DNS-Einträgen für den virtuellen Host entsprechen, aber nicht für mehrere Ports. Wenn Sie mehrere Ports benötigen, erstellen Sie mehrere Definitionen virtueller Hosts mit unterschiedlichen Ports.

Sie können das Platzhalterzeichen „*“ in den Hostalias einfügen. Das Platzhalterzeichen „*“ darf nur am Anfang (vor dem ersten „.“) des Hostalias stehen und nicht mit anderen Zeichen kombiniert werden. Beispiel: *.example.com Das TLS-Zertifikat für den virtuellen Host muss im CN-Namen des Zertifikats einen übereinstimmenden Platzhalter haben. Beispiel: *.example.com. Durch die Verwendung eines Platzhalters in einem virtuellen Hostalias können API-Proxys Aufrufe verarbeiten, die an mehrere Subdomains wie alpha.example.com, beta.example.com oder live.example.com adressiert sind. Außerdem können Sie mit einem Platzhalteralias weniger virtuelle Hosts pro Umgebung verwenden, um die Produktlimits einzuhalten, da ein virtueller Host mit einem Platzhalter nur als ein virtueller Host gezählt wird.

Für die Cloud: Wenn Sie einen vorhandenen virtuellen Host haben, der einen anderen Port als 443 verwendet, können Sie keinen Hostalias hinzufügen oder entfernen.

Für Private Cloud: Wenn Sie den Hostalias mithilfe der IP-Adressen Ihrer Router und nicht mithilfe von DNS-Einträgen festlegen, fügen Sie für jeden Router einen separaten Hostalias hinzu, wobei Sie die IP-Adresse jedes Routers und den Port des virtuellen Hosts angeben.

Keine Ja
Schnittstellen Nur für Edge für Private Cloud verfügbar.
Schnittstelle

Gibt die Netzwerkschnittstellen an, an die port gebunden sein soll. Wenn Sie dieses Element weglassen, wird der Port an alle Schnittstellen gebunden.

So legen Sie beispielsweise fest, dass der Port nur an en0 gebunden werden soll:

<Interfaces>
  <Interface>en0</Interface>
</Interfaces>

Ermitteln Sie die auf Ihrem System verfügbaren Schnittstellen, indem Sie den Befehl "ifconfig -a" ausführen.

Keine Alle Benutzeroberflächen
RetryOptions Verfügbar für Edge Cloud und für Private Cloud 4.18.01 und höher.
RetryOption

Konfigurieren Sie, wie der Router für diesen virtuellen Host reagiert, wenn der Message Processor ausfällt.

Mit <RetryOption> können Sie mehrere Werte angeben. Gültige Werte:

off Deaktiviert die Wiederholung und der virtuelle Host gibt auf Anfrage einen Fehlercode zurück.
http_599 (Standardeinstellung) Wenn der Router eine HTTP 599-Antwort vom Message Processor erhält, leitet er die Anfrage an den nächsten Message Processor weiter.

HTTP 599 ist ein spezieller Antwortcode, der von einem Message Processor generiert wird, wenn er heruntergefahren wird. Der Message Processor versucht, alle vorhandenen Anfragen abzuschließen, antwortet jedoch mit HTTP 599, um dem Router zu signalisieren, dass die Anfrage beim nächsten Message Processor wiederholt werden soll.

error Wenn beim Herstellen einer Verbindung mit dem Message Processor, beim Übergeben einer Anfrage an den Message Processor oder beim Lesen des Antwortheaders ein Fehler aufgetreten ist, leitet der Router die Anfrage an den nächsten Message Processor weiter.
timeout Wenn beim Aufbau einer Verbindung mit dem Message Processor, beim Übergeben einer Anfrage an den Message Processor oder beim Lesen des Antwortheaders ein Zeitlimit auftritt, leitet der Router die Anfrage an den nächsten Message Processor weiter.
invalid_header Wenn der Message Processor eine leere oder ungültige Antwort zurückgegeben hat, leitet der Router die Anfrage an den nächsten Message Processor weiter.
http_XXX Wenn der Message Processor eine Antwort mit dem HTTP-Code XXX zurückgegeben hat, leitet der Router die Anfrage an den nächsten Message Processor weiter.

Wenn Sie mehrere Werte angeben, verwendet der Router ein logisches ODER, um sie zu kombinieren.

Beispiel:

<RetryOptions>
  <RetryOption>http_599</RetryOption>
  <RetryOption>error</RetryOption>
  <RetryOption>timeout</RetryOption>
  <RetryOption>invalid_header</RetryOption>
</RetryOptions>
ListenOptions Verfügbar für Private Cloud 4.18.01 und höher und für Edge Cloud. Senden Sie eine Anfrage an den Apigee Edge-Support.
ListenOption

Wenn Sie einen ELB im TCP-Pass-Through-Modus zur Verarbeitung von Anfragen an die Edge-Router verwenden, behandelt der Router die IP-Adresse des ELB als Client-IP-Adresse und nicht als tatsächliche Client-IP-Adresse. Wenn der Router die tatsächliche Client-IP-Adresse benötigt, aktivieren Sie proxy_protocol im ELB, damit die Client-IP-Adresse im TCP-Paket übergeben wird. Auf dem Router müssen Sie auch <ListenOption> auf dem virtuellen Host auf proxy_protocol festlegen. Da sich der ELB im TCP-Pass-Through-Modus befindet, beenden Sie in der Regel TLS auf dem Router. Daher konfigurieren Sie den virtuellen Host in der Regel nur für die Verwendung von proxy_protocol, wenn Sie ihn auch für die Verwendung von TLS konfigurieren.

Der Standardwert für <ListenOption> ist ein leerer String.

Beispiel:

<ListenOptions>
  <ListenOption>proxy_protocol</ListenOption>
</ListenOptions>

Wenn Sie die Festlegung von <ListenOption> später aufheben möchten, aktualisieren Sie den virtuellen Host und lassen Sie das Tag <ListenOptions> bei der Aktualisierung weg.

SSLInfo
Aktiviert

Aktiviert One-Way-TLS/SSL. Sie müssen einen Schlüsselspeicher definiert haben, der das Zertifikat und den privaten Schlüssel enthält.

Für Cloud: Sie müssen ein Zertifikat haben, das von einer vertrauenswürdigen Entität wie Symantec oder VeriSign signiert wurde. Sie können kein selbst signiertes Zertifikat oder untergeordnete Zertifikate verwenden, die von einer selbst signierten Zertifizierungsstelle signiert wurden.

Für die Cloud: Wenn der vorhandene virtuelle Host so konfiguriert ist, dass ein anderer Port als 443 verwendet wird, können Sie die TLS-Einstellung nicht ändern. Das heißt, Sie können die TLS-Einstellung nicht von „Aktiviert“ in „Deaktiviert“ oder von „Deaktiviert“ zu „Aktiviert“ ändern.

false Nein
ClientAuthEnabled Aktiviert die Zwei-Wege- oder Client-TLS-Verbindung zwischen Edge (Server) und der Anwendung (Client), von der die Anfrage stammt. Zum Aktivieren von Zwei-Wege-TLS müssen Sie in Edge einen Truststore einrichten, der das Zertifikat des TLS-Clients enthält. false Nein
KeyStore

Der Name des Schlüsselspeichers in Edge.

Apigee empfiehlt, dass Sie einen Verweis verwenden, um den Schlüsselspeichernamen anzugeben, damit Sie den Schlüsselspeicher ändern können, ohne Router neu starten zu müssen. Weitere Informationen finden Sie unter Optionen für die Konfiguration von TLS.

Keine Ja, wenn „Aktiviert“ wahr ist
KeyAlias Der Alias, der beim Hochladen des Zertifikats und des privaten Schlüssels in den Schlüsselspeicher angegeben wurde. Sie müssen den Aliasnamen buchstäblich angeben. Sie können keinen Verweis verwenden. Weitere Informationen finden Sie unter Optionen für die Konfiguration von TLS. Keine Ja, wenn „Aktiviert“ wahr ist
TrustStore

Der Name des Truststores in Edge, der das für Zwei-Wege-TLS verwendete Zertifikat oder die Zertifikatskette enthält. Erforderlich, wenn <ClientAuthEnabled> „wahr“ ist.

Apigee empfiehlt, dass Sie einen Verweis verwenden, um den Truststore-Namen anzugeben, damit Sie den Truststore ändern können, ohne Router neu starten zu müssen. Weitere Informationen finden Sie unter Optionen für die Konfiguration von TLS.

Keine Nein
IgnoreValidationErrors

Wenn „true“, wird angegeben, dass TLS-Zertifikatfehler ignoriert werden sollen. Dies ähnelt der Option „-k“ für cURL.

Diese Option ist gültig, wenn Sie TLS für Zielserver und Zielendpunkte sowie virtuelle Hosts konfigurieren, die 2-Wege-TLS verwenden.

Wenn das Back-End-System SNI verwendet und ein Zertifikat mit einem Subjekt-Distinguished Name (DN) zurückgibt, der nicht mit dem Hostnamen übereinstimmt, kann bei Verwendung mit einem Zielendpunkt/Zielserver der Fehler nicht ignoriert werden und die Verbindung schlägt fehl.

false Nein
Verschlüsselungsverfahren

Nur für Edge for Private Cloud Version 4.15.07 und niedriger.

Gibt die vom virtuellen Host unterstützten Chiffren an. Wenn keine Chiffren angegeben sind, sind alle für die JVM verfügbaren Chiffren zulässig.

Fügen Sie die folgenden Elemente hinzu, um die Verschlüsselung einzuschränken:

<Ciphers>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</Cipher>
  <Cipher>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</Cipher>
</Ciphers>
Alle von der JVM unterstützt Nein
Protokolle

Nur für Edge for Private Cloud Version 4.15.07 und niedriger.

Gibt die vom virtuellen Host unterstützten Protokolle an. Wenn keine Protokolle angegeben sind, sind alle für die JVM verfügbaren Protokolle zulässig.

Fügen Sie die folgenden Elemente hinzu, um Protokolle einzuschränken:

<Protocols>
  <Protocol>TLSv1</Protocol>
  <Protocol>TLSv1.2</Protocol>
  <Protocol>SSLv2Hello</Protocol>
</Protocols>
Alle von der JVM unterstützt Nein
UseBuiltInFreeTrialCert Nur für Edge Cloud verfügbar.
UseBuiltInFreeTrialCert

Wenn Sie ein kostenpflichtiges Edge for Cloud-Konto und noch kein TLS-Zertifikat und keinen TLS-Schlüssel haben, können Sie einen virtuellen Host erstellen, der das Zertifikat und den Schlüssel für die kostenlose Apigee-Testversion verwendet. Das bedeutet, dass Sie den virtuellen Host erstellen können, ohne zuvor einen Schlüsselspeicher zu erstellen.

Das kostenlose Apigee-Testzertifikat ist für eine Domain von *.apigee.net definiert. Daher muss der <HostAlias> des virtuellen Hosts ebenfalls das Format *.apigee.net haben.

Weitere Informationen finden Sie unter Virtuellen Host definieren, der das kostenlose Testzertifikat und den kostenlosen Apigee-Testschlüssel verwendet.

false Nein
PropagateTLSInformation Nur in der Alphaversion für Edge Cloud verfügbar.
ConnectionProperties

Aktiviert die Erfassung von TLS-Verbindungsinformationen durch Edge. Diese Informationen stehen dann als Flussvariablen in einem API-Proxy zur Verfügung. Weitere Informationen finden Sie unter Auf TLS-Verbindungsinformationen in einem API-Proxy zugreifen.

false Nein
ClientProperties

Aktiviert die Erfassung von Details zum Clientzertifikat, die von Edge in Zwei-Wege-TLS erfasst wurden. Diese Informationen stehen dann als Flussvariablen in einem API-Proxy zur Verfügung. Weitere Informationen finden Sie unter Auf TLS-Verbindungsinformationen in einem API-Proxy zugreifen.

false Nein
Properties Verfügbar für Edge Cloud und für Private Cloud 4.17.01 und höher.
proxy_read_timeout

Legt das Zeitlimit in Sekunden zwischen Nachrichtenprozessoren und dem Router fest. Der Router unterbricht die Verbindung und gibt eine HTTP 504-Antwort zurück, wenn er vor Ablauf dieser Zeitspanne keine Antwort vom Message Processor erhält.

Der Wert von proxy_read_timeout sollte größer sein als der Zielzeitlimitwert, der vom Message Processor verwendet wird. Dadurch wird sichergestellt, dass für den Router keine Zeitüberschreitung auftritt, bevor der Message Processor Zeit hatte, eine Antwort zurückzugeben. Das standardmäßige Zielzeitlimit für den Message Processor beträgt 55 Sekunden, 55.000 Millisekunden, wie im conf_http_HTTPTransport.io.timeout.millis-Token für den Message Processor definiert.

57 Nein
keepalive_timeout

Legt das Zeitlimit in Sekunden zwischen dem Client und dem Router fest, wenn der Client eine Anfrage stellt, die den Keep-Alive-Header enthält. Der Router hält die Verbindung offen, bis die Dauer abgelaufen ist.

Der Router beendet die Verbindung nicht, wenn er derzeit auf eine Antwort des Message Processor wartet. Das Zeitlimit beginnt erst, nachdem der Router die Antwort an den Client zurückgegeben hat.

65 Nein
ssl_ciphers

Legt die vom virtuellen Host unterstützten Chiffren fest und überschreibt die Standardchiffren auf dem Router.

Geben Sie eine durch Doppelpunkt getrennte Liste von Chiffren im folgenden Format an:

<Property name="ssl_ciphers">HIGH:!aNULL:!MD5:!DH+3DES:!kEDH;</Property>

Informationen zur Syntax und zu den Werten, die für dieses Token zulässig sind, finden Sie unter https://www.openssl.org/docs/man1.0.2/man1/ciphers.html. Beachten Sie, dass für dieses Token die OpenSSL-Chiffrenamen wie AES128-SHA256 und nicht die Java/JSSE-Chiffrennamen wie TLS_RSA_WITH_AES_128_CBC_SHA256 verwendet werden.

HIGH:!aNULL:

!MD5:

!DH+3DES:

!kEDH

Nein
ssl_protocols

Nur für Edge für Private Cloud verfügbar.

Legt die vom virtuellen Host unterstützten TLS-Protokolle als durch Leerzeichen getrennte Liste fest und überschreibt die auf dem Router festgelegten Standardprotokolle.

Hinweis: Wenn zwei virtuelle Hosts denselben Port verwenden, müssen sie für ssl_protocols dieselben Protokolle festlegen. Virtuelle Hosts, die sich denselben Port teilen, müssen also genau dieselben Protokolle unterstützen.

Geben Sie eine durch Leerzeichen getrennte Liste von TLS-Protokollen im folgenden Format an:

<Property name="ssl_protocols">TLSv1 TLSv1.2</Property>
TLSv1 TLSv1.1 TLSv1.2 Nein
proxy_request_buffering

Aktiviert (ein) bzw. deaktiviert (off) die Zwischenspeicherung des Anforderungstexts. Wenn die Zwischenspeicherung aktiviert ist, puffert der Router den gesamten Anfragetext, bevor er an den Message Processor gesendet wird. Wenn ein Fehler auftritt, kann der Router einen anderen Message Processor verwenden.

Ist sie deaktiviert, wird die Zwischenspeicherung deaktiviert und der Anfragetext wird sofort nach Erhalt an den Message Processor gesendet. Wenn ein Fehler auftritt, wiederholt der Router die Anfrage nicht an einen anderen Message Processor.

am Nein
proxy_buffering Aktiviert (ein) bzw. deaktiviert (off) die Zwischenspeicherung der Antwort. Wenn die Zwischenspeicherung aktiviert ist, puffert der Router die Antwort. Wenn die Zwischenspeicherung deaktiviert ist, wird die Antwort synchron an den Client übergeben, sobald sie vom Router empfangen wird. am Nein