Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Konfigurieren Sie das Proxyprotokoll für Ihren Classic Load Balancer
Proxy-Protokoll ist ein Internetprotokoll, das verwendet wird, um Verbindungsinformationen von der Quelle, die die Verbindung anfragt, zum Ziel, für das die Verbindung angefragt wurde, überträgt. Elastic Load Balancing verwendet die Proxy-Protokoll-Version 1 in einem visuell lesbaren Header-Format.
Wenn Sie Transmission Control Protocol (TCP) für Frontend- und Backend-Verbindungen verwenden, überträgt Ihr Classic Load Balancer standardmäßig Anforderungen an die Instances, ohne die Anforderungs-Header zu ändern. Wenn Sie Proxy-Protokoll aktivieren, wird ein visuell lesbarer Header mit Verbindungsinformationen, wie z. B. Quell-IP-Adresse, Ziel-IP-Adresse und Portnummern, zum Anforderungs-Header hinzugefügt. Der Header wird dann als Teil der Anforderung zu der Instance gesandt.
Anmerkung
Das AWS-Managementkonsole unterstützt die Aktivierung des Proxyprotokolls nicht.
Inhalt
Proxy-Protokoll-Header
Anhand des Proxy-Protokoll-Headers können Sie die IP-Adresse eines Clients identifizieren, wenn Sie über einen Load Balancer verfügen, der für Backend-Verbindungen TCP verwendet. Da Load Balancers Datenverkehr zwischen Clients und Ihren Backend-Instances abfangen, enthalten die Zugriffsprotokolle von Ihrer Backend-Instance die IP-Adresse des Load Balancer statt des ursprünglichen Clients. Sie können die erste Zeile der Anforderung parsen, um die IP-Adresse Ihres Clients und die Portnummer abzurufen.
Die Adresse des Proxys im Header für IPv6 ist die öffentliche IPv6 Adresse Ihres Load Balancers. Diese IPv6 Adresse entspricht der IP-Adresse, die aus dem DNS-Namen Ihres Load Balancers aufgelöst wird, der entweder mit oder ipv6 beginnt. dualstack Wenn der Client eine Verbindung herstellt IPv4, ist die Adresse des Proxys im Header die private IPv4 Adresse des Load Balancers, die nicht durch eine DNS-Suche aufgelöst werden kann.
Die Proxy-Protokoll-Zeile ist eine einzelne Zeile, die mit einem Wagenrücklauf und Zeilenvorschub endet ("\r\n") und in der folgenden Form vorliegt:
PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"
Beispiel: IPv4
Im Folgenden finden Sie ein Beispiel für die Proxy-Protokollzeile für. IPv4
PROXY TCP4 198.51.100.22 203.0.113.7 35646 80\r\n
Voraussetzungen für die Aktivierung des Proxy-Protokolls
Bevor Sie beginnen, führen Sie die folgenden Schritte aus:
-
Vergewissern Sie sich, dass Ihr Load Balancer sich nicht hinter einem Proxy-Server mit aktiviertem Proxy-Protokoll befindet. Wenn Proxy-Protokoll sowohl für den Proxy-Server als auch den Load Balancer aktiviert ist, fügt der Load Balancer einen weiteren Header zu der Anforderung hinzu, die bereits über einen Header vom Proxy-Server verfügt. Abhängig von der Konfiguration Ihrer Instance kann diese Duplikation zu Fehlern führen.
-
Vergewissern Sie sich, dass Ihre Instances die Proxy-Protokoll-Informationen verarbeiten können.
-
Vergewissern Sie sich, dass Ihre Listener-Einstellungen Proxy-Protokoll unterstützen. Weitere Informationen finden Sie unter Listener-Konfigurationen für Classic Load Balancer.
Aktivieren von Proxy-Protokoll mit der AWS CLI
Sie müssen eine Richtlinie des Typs ProxyProtocolPolicyType erstellen und diese Richtlinie dann auf dem Instance-Port aktivieren, um Proxy-Protokoll zu aktivieren.
Nutzen Sie die folgende Vorgehensweise, um eine neue Richtlinie für Ihren Load Balancer des Typs ProxyProtocolPolicyType zu erstellen. Legen Sie die neu erstellte Richtlinie für die Instance von Port 80 fest und stellen Sie sicher, dass die Richtlinie aktiviert ist.
Aktivieren von Proxy-Protokoll für Ihren Load Balancer
-
(Optional) Verwenden Sie den folgenden Befehl describe-load-balancer-policy-types, um die von Elastic Load Balancing unterstützten Richtlinien aufzulisten:
aws elb describe-load-balancer-policy-typesDie Antwort enthält die Namen und Beschreibungen der unterstützten Richtlinientypen. Das folgende Beispiel zeigt die Ausgabe für den
ProxyProtocolPolicyType-Typ:{ "PolicyTypeDescriptions": [ ... { "PolicyAttributeTypeDescriptions": [ { "Cardinality": "ONE", "AttributeName": "ProxyProtocol", "AttributeType": "Boolean" } ], "PolicyTypeName": "ProxyProtocolPolicyType", "Description": "Policy that controls whether to include the IP address and port of the originating request for TCP messages. This policy operates on TCP/SSL listeners only" }, ... ] } -
Verwenden Sie den folgenden create-load-balancer-policyBefehl, um eine Richtlinie zu erstellen, die das Proxy-Protokoll aktiviert:
aws elb create-load-balancer-policy --load-balancer-namemy-loadbalancer--policy-namemy-ProxyProtocol-policy--policy-type-name ProxyProtocolPolicyType --policy-attributes AttributeName=ProxyProtocol,AttributeValue=true -
Verwenden Sie den folgenden for-backend-server Befehl set-load-balancer-policies-, um die neu erstellte Richtlinie für den angegebenen Port zu aktivieren. Beachten Sie, dass dieser Befehl die aktuell aktivierten Richtlinien ersetzt. Daher müssen in der Option
--policy-namessowohl die Richtlinie, die Sie zur Liste hinzufügen (zum Beispielmy-ProxyProtocol-policy) als auch alle Richtlinien, die aktuell aktiviert sind (zum Beispielmy-existing-policy) angegeben werden.aws elb set-load-balancer-policies-for-backend-server --load-balancer-namemy-loadbalancer--instance-port80--policy-namesmy-ProxyProtocol-policy my-existing-policy -
(Optional) Verwenden Sie den folgenden describe-load-balancersBefehl, um zu überprüfen, ob das Proxyprotokoll aktiviert ist:
aws elb describe-load-balancers --load-balancer-namemy-loadbalancerDie Antwort enthält die folgenden Informationen, was bedeutet, dass die Richtlinie
my-ProxyProtocol-policyPort80zugeordnet ist.{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [ { "InstancePort": 80, "PolicyNames": [ "my-ProxyProtocol-policy" ] } ], ... } ] }
Deaktivieren von Proxy-Protokoll mit der AWS CLI
Sie können die mit Ihrer Instance verknüpften Richtlinien deaktivieren und zu einem späteren Zeitpunkt wieder aktivieren.
Deaktivieren der Proxy-Protokoll-Richtlinie
-
Verwenden Sie den folgenden for-backend-server Befehl set-load-balancer-policies-, um die Proxyprotokollrichtlinie zu deaktivieren, indem Sie sie aus der
--policy-namesOption weglassen, aber die anderen Richtlinien einbeziehen, die aktiviert bleiben sollen (z. B.).my-existing-policyaws elb set-load-balancer-policies-for-backend-server --load-balancer-namemy-loadbalancer--instance-port80--policy-namesmy-existing-policyWenn keine anderen Richtlinien zum Aktivieren vorhanden sind, geben Sie mit der Option
--policy-nameseine leere Zeichenfolge an:aws elb set-load-balancer-policies-for-backend-server --load-balancer-namemy-loadbalancer--instance-port80--policy-names "[]" -
(Optional) Verwenden Sie den folgenden describe-load-balancersBefehl, um zu überprüfen, ob die Richtlinie deaktiviert ist:
aws elb describe-load-balancers --load-balancer-namemy-loadbalancerDie Antwort enthält die folgenden Informationen, was bedeutet, dass keine Ports mit der Richtlinie verknüpft sind.
{ "LoadBalancerDescriptions": [ { ... "BackendServerDescriptions": [], ... } ] }