Show TOC

HintergrundSzenario 3: Kommunikation direkt und über reversen Proxy Dieses Dokument in der Navigationsstruktur finden

 

Einige Web Browser kommunizieren mit dem AS-ABAP über einen reversen Proxy-Server (Internet-Szenario). Andere Browser kommunizieren direkt mit dem AS-ABAP (z.B. im Intranet eines Unternehmens).

Die Abbildung wird im Begleittext erläutert.

Beispiel Beispiel

Proxy: www.sap.com (http:80, https:443)

Host: webas.sap.corp (http:1080, https:1443)

Ende des Beispiels.
HTTPURLLOC

MANDT

SORT_KEY

PROTOCOL

APPL

HOST

PORT

100

020

HTTP

*

WEBAS.SAP.CORP

1080

100

021

HTTPS

*

WEBAS.SAP.CORP

1443

100

030

HTTP

*

http://WWW.SAP.COM

80

100

031

HTTPS

*

http://WWW.SAP.COM

443

In dieser Tabelle werden alle Applikationen abgeglichen. Wenn ein eingehender Host-Header verfügbar ist, wird er zum Filtern der korrekt zu verwendenden Zeilen verwendet. Dies ist insbesondere dann wichtig, wenn ein Umschalten des Protokolls, z.B. von HTTP zu HTTPS, durchgeführt werden muss. Dann ist es wichtig zu wissen, ob man sich im Internet oder im Intranet befindet. Ist kein Host-Header verfügbar (z.B. wenn eine Anwendung aus der Workbench getestet wird), dann wird der erste übereinstimmende Eintrag verwendet. In diesem Fall ist der Sortierungsschlüssel von Bedeutung, und eine Intranet-URL wird standardmäßig erstellt.

In diesen Szenarios ist es wichtig, dass der reverse Proxy-Server nicht den Host-Header ändert. Er muss völlig transparent vom Browser an den Server weitergereicht werden. Dies ist notwendig, um Internet-Requests von Intranet-Requests zu unterscheiden. Für einen Apache reversen Proxy (mod_proxy) muss die Konfigurationsoption ProxyPreserveHost aktiv sein.

Hinweis Hinweis

Beachten Sie, dass dieses Feature nur von Apache Version 2+ unterstützt wird.

Ende des Hinweises.

Nun geht es darum, was passiert, wenn mehr als ein Applikationsserver aktiv ist und es um den Intranet-Fall geht. Mit der obigen Tabellendefinition wird beim Testen aus der Workbench heraus der erste Eintrag abgeglichen (da kein Host-Header verfügbar ist), wodurch eine URL für den Intranet-Namen generiert wird (webas.sap.corp). Dies könnte die Information für jeden Applikationsserver sein, oder auch für den Message-Server, der den HTTP-Request dispatcht. Jedoch gestaltet sich durch dieses Verfahren das Debugging und das Testen von Web-Applikationen als schwierig. Es wird daher eine Technik benötigt, mit der festgelegt werden kann, dass wenn kein Host-Header verfügbar ist, die Informationen vom lokalen Applikationsserver ausgewertet werden. Dies kann erreicht werden, indem zwei zusätzliche Einträge mit leerem Host-Header der Tabelle hinzugefügt werden. Der leere Host-Header wird als Exit-Kriterium vom Exception-Coding verwendet.

HTTPURLLOC

MANDT

SORT_KEY

PROTOCOL

APPL

HOST

PORT

100

010

HTTP

*

100

011

HTTPS

*

100

020

HTTP

*

WEBAS1.SAP.CORP

1080

100

021

HTTPS

*

WEBAS1.SAP.CORP

1443

100

022

HTTP

*

WEBAS2.SAP.CORP

1080

100

023

HTTPS

*

WEBAS2.SAP.CORP

1443

100

030

HTTP

*

http://WWW.SAP.COM

80

100

031

HTTPS

*

http://WWW.SAP.COM

443

Wenn kein Host-Header verfügbar ist, wird der erste Eintrag abgeglichen. In diesem Fall ist dort das Host-Feld leer, was bedeutet, dass die Informationen des lokalen AS-ABAP verwendet werden sollen. Ist ein Host-Header verfügbar, gibt es zwei Möglichkeiten: Entweder müssen alle Namen in der Tabelle aufgelistet werden, so dass kein Eintrag übereinstimmt. Oder aber es sind keine Einträge (020 bis 029) in der Tabelle verfügbar. Dann werden die Informationen des lokalen AS-ABAP für die URL-Generierung verwendet.