Java >> Java Tutorial >  >> Java

So richten Sie IIS als Reverse Proxy zu Jetty ein

Kürzlich bin ich auf ein interessantes Szenario gestoßen, in dem wir eine alte Anwendung auf eine neue Anwendung umleiten müssen. Dies diente hauptsächlich dazu, die Abwärtskompatibilität mit der neuen Anwendung zu unterstützen, falls bestehende Kunden damit beginnen, sie zu verwenden. Meistens müssen diese Kunden also nichts auf ihrer Seite ändern, sondern verwenden einfach das alte Produkt, das noch auf eine neue Anwendung umleiten könnte. Die alte Anwendung verwendete den IIS-Webserver. In diesem Beitrag werde ich zeigen, wie man IIS als Reverse-Proxy für Jetty einrichtet.

Szenario

Der Anwendungsfall ist, dass eine Anwendung https://abccompany.com/salesapp läuft als ASP.NET-Anwendung hinter dem IIS-Webserver. Die neue Anwendung https://abccompany.com/newsalesapp wird mit JAVA erstellt und läuft auf dem Jetty-Webserver.

Ein Teil der Bestandskunden nutzt noch die alte Anwendung. Der einfachste Weg, sie dazu zu bringen, die neue Anwendung weiterhin zu verwenden, besteht darin, die Anfragen für die alte Anwendung an die neue Anwendung umzuleiten.

Implementierung

Wir haben diese Maßnahme nur zum Zweck der Abwärtskompatibilität und der Reduzierung von Kundenproblemen implementiert, wenn sie eine neue Anwendung verwenden möchten. Es hilft ihnen, wie einfach und reibungslos dies geschehen kann.

Um IIS als Proxy für den Jetty-Webserver einzurichten, müssen wir das Application Request Routing und das URL Rewrite-Modul auf IIS installieren. Denken Sie daran, dass diese Module kostenlos sind, aber nicht standardmäßig installiert sind.

IIS-Proxy-Einstellungen

Sobald Sie das Application Request Routing-Modul installiert haben, gehen Sie zu Ihrem IIS-Manager für Ihren Server und öffnen Sie das Modul.

In Server Proxy Settings , auf Enable Proxy konfigurieren und behalte die restlichen Einstellungen wie sie sind. Das folgende Bild zeigt die Konfiguration:

Regeln umschreiben/umleiten

Jetzt verwenden wir das URL-Rewrite-Modul für die Site, die Teil des IIS-Servers ist. Sobald Sie das URL-Rewrite-Modul geöffnet haben, klicken Sie auf Add Rule und es wird der folgende Bildschirm zum Erstellen einer Regel angezeigt, also wählen Sie Blank Rule Möglichkeit

Fügen Sie einen Namen für die Regel in einem neuen Fenster der leeren Regel hinzu. Jetzt können Sie ein Muster Ihrer alten Anwendungs-URL hinzufügen, das umgeleitet wird, mit dem Aktionstyp Redirect auf neue UMLEITUNGS-URL.

Das Muster für die alte URL ist ein regulärer Ausdruck, stellen Sie also sicher, dass Sie den richtigen Ausdruck für die URL Ihrer Anwendung verwenden. In meinem Fall sieht es wie folgt aus:

Diese Regel übernimmt alle Abfragezeichenfolgenparameter, die Sie in der alten Anwendungs-URL haben, und fügt sie der neuen URL hinzu.

Beispiel. https://abccompany.com/salesapp?productid=1&customerid=2 wird zu https://abccompany.com/newsalesapp?productid=1&customerid=2 . Voraussetzung ist natürlich, dass Ihre neue Anwendung dieselben Parameter mit denselben Namen verwendet.

Schlussfolgerung

Dies war also eine einfache Möglichkeit, jede Anfrage vom IIS-Server an Jetty umzuleiten. Dies ist einfach großartig, wenn Sie nur REDIRECT OR GET-Anforderungen haben. Was passiert, wenn ein Benutzer ein Formular einreicht ODER eine POST-Anforderung verwendet? In diesem Fall müssen wir einige Änderungen vornehmen.

  1. Der Anwendungspool für Ihre Website sollte klassisch sein.
  2. Statt redirect , sollten Sie rewrite schreiben Regeltyp.

Referenzen

  1. IIS als Reverse Proxy mit Anwendungsanfrage-Routing und URL-Umschreibung – Anfrage-Routing


Java-Tag