
In Kürze:
IIS 7+Apache Tomcat 7+ isapi_redirect.dll
:
Ich habe eine implementierte und funktionierende Tomcat-Anwendung unter verfügbar http://localhost:8080/my_app
.
Ich möchte denselben Inhalt unter sehen http://my_app.local
(und NICHT die Standard-Tomcat-Site [die Sie unten sehen können]).
Ich habe eingerichtet , sodass der Inhalt von isapi_redirect.dll
derzeit dem von entspricht, aber das reicht nicht, ich möchte unter zuordnen . (Ich habe in der Hosts-Datei, sodass ich bereits öffnen kann , ABER jetzt wird nur die Standard-Tomcat-Site angezeigt (dieselbe wie unter verfügbar )).my_app.local
localhost:8080
localhost:8080/my_app
my_app.local
127.0.0.1 my_app.local
my_app.local
http://localhost:8080
Bitte lesen Sie, was ich bereits versucht habe:
Länger erklärt:
Ich habeIIS 7(7.5.7600.16385) undApache Tomcat/7.0.22Eingerichtet.
- Ich habe eine Anwendung (nennen wir sie "
my_app
") in Tomcat bereitgestellt, die jetzt unter erreichbar ist undhttp://localhost:8080/my_app
einwandfrei funktioniert. Ich habe im IIS-Panel eine neue Website mit dem Pfad der bereitgestellten Tomcat-Anwendung hinzugefügtmy_app
, die folgendermaßen aussieht: "c:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\my_app
" - Ich habe den Hostnamen gebunden
my_app.local
. - Danach konfigurierte ich
isapi_redirect.dll
wie folgtDas(oder Das). - Wenn ich jetzt öffne
http://my_app.local
, wird mir die Tomcat-Standardsite (siehe unten) angezeigt, deren Inhalt mit dem unterhttp://localhost:8080/
!! identisch ist (Das ist das Problem!!!) - ABER darunter
http://my_app.local
möchte ich den gleichen Inhalt sehen wie darunterhttp://localhost:8080/my_app
.
Wie kann ich das machen? Vielen Dank im Voraus!!
meine Konfigurationsdateien:
- isapi_redirect.properties(Ich habe eine Verzeichnisverknüpfung zu c:\tomcat vorgenommen, daher funktioniert das auch :))
- Arbeiter.Eigenschaften
- uriworkermap.properties
- rewrites.properties (leer)
AKTUALISIEREN
Das hier habe ich auch gefunden:http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html
Fall B: Sie müssen Pfadkomponenten für alle Anfragen an die Anwendung verbergen. Hier ist das Rezept für den Fall, in dem Sie die erste Pfadkomponente /myapp verbergen möchten. Komplexere Manipulationen bleiben dem Leser als Übung überlassen. Zunächst die Lösung für den Fall von Apache httpd:
- Verwenden Sie mod_rewrite, um allen Anfragen /myapp hinzuzufügen, bevor Sie sie an das Backend weiterleiten: [...]
- Verwenden Sie mod_headers, um alle HTTP-Weiterleitungen umzuschreiben, die Ihre Anwendung möglicherweise zurückgibt. [...]
- Verwenden Sie mod_headers erneut, um die Pfade in den Cookies neu zu schreiben, die Ihre Anwendung möglicherweise setzt. [...]
Wenn Sie Microsoft IIS verwendenAls Webserver bietet das ISAPI-Plugin eine Möglichkeit, den ersten Schritt mit einer integrierten Funktion auszuführen.Sie definieren eine Mapping-Dateifür einfache Präfixänderungen wie diese:
# Add a context prefix to all requests ... /=/myapp/ # ... or change some prefix ... /oldapp/=/myapp/
und trage dann den Namen der Datei in den
rewrite_rule_file
Eintrag der Registry bzw. deinerisapi_redirect.properties
Datei ein. In deineruriworkermap.properties
Datei musst du die URLs noch so zuordnen, wie sie vor dem Umschreiben sind! [...]
Die Schritte 2 (Umschreiben von Umleitungsantworten) und 3 (Umschreiben von Cookie-Pfaden) werden nicht unterstützt.
Ich war überrascht, dass dort steht "Die Schritte 2 (Umschreiben von Umleitungsantworten) und 3 (Umschreiben von Cookie-Pfaden) werden nicht unterstützt.", ich weiß nicht, ob das noch stimmt, aber was dann? Stecke ich wieder fest?
Antwort1
Abhängig von Ihrem Ziel (leicht zu merkende URL?), ist es vielleicht in Ordnung, einfachumleitenmeine_app.local -> meine_app.local:8080/meine_app?
Dies würde nichtversteckendie Zielsite jedoch.
Richten Sie eine neue IIS-Site unter my_app.local ein und lassen Sie sieumleitenzu Ihrer :8080/my_app-App.
http://technet.microsoft.com/en-us/library/cc732930(WS.10).aspx
Antwort2
Können Sie Folgendes versuchen: http://blogs.iis.net/carlosag/archive/2010/04/01/setting-up-a-reverse-proxy-using-iis-url-rewrite-and-arr.aspx
Dies scheint das zu sein, was Sie brauchen: URL-Umschreibung und Anwendungsrouting.