it-swarm.com.de

Benötigen Sie Hilfe zu Tomcat URL mod_rewrite oder mod_jk?

Ich versuche, den Kontextnamen von der URL meines Servers zu entfernen.

Aktuelle URL - http://www.domainname.com/MyApp/

Was ich machen muss, ist, es verfügbar zu machen unter - www.domainname.com/

Es wird also nur eine Haupt-App gehostet und diese muss angezeigt werden, wenn wir www.domainname.com/ im Browser öffnen.

Ich habe bereits ein paar Dinge ausprobiert, wie unten -

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(Context/.*)$
RewriteRule ^/(.*)$ /Context/$1 [P,L]

OR

redirect permanent /MyApp/ abcd://domainname.com

OR

Verwendung von JKMount -

JkMount /MyApp/* ajp13
JkMount /MyApp* ajp13

OR

Stellen Sie die War-Datei auf ROOT of Tomcat bereit und führen Sie relevante Änderungen in web und server.xml durch. All dies funktioniert nicht und es wird immer wieder ein Fehler angezeigt. Ich brauche eine Möglichkeit, die Tomcat-URL zu kürzen, um sie kurz zu machen.

2
Redbull Fan

Angenommen, http://www.domainname.com/MyApp/ funktioniert wie es ist ... sollten Sie nicht in der Lage sein, einfach Ihre endgültige RewriteRule zu verwenden? Lass einfach die RewriteCond und das 'P' Flag fallen.

Oder müssen Sie nicht die vollständige URL in der RewriteRule verwenden, wenn Sie mod_rewrite verwenden, um den Proxy mit dem Flag 'P' auszuführen? So etwas wie http://tomcatserver:tomcatport/Context/$1

1
matthew

Sie sollten mod_jk beenden und mod_proxy verwenden. Ich führe Tomcat auf Port 8080 aus. Die Web-App, die meine Site mit Strom versorgt, hat eine interne URL wie http://localhost:8080/mysite Ich verwende Mod-Proxy, um sie auf http://mysite.example.com/ verfügbar zu machen. Ich verwende eine Firewall, um sicherzustellen, dass nur auf Port 80 zugegriffen werden kann von der Außenwelt. mod_proxy ist viel flexibler als mod_jk. Tomcat stellt die Anwendung sowohl über den HTTP-Port 8080 als auch über die von mod_jk standardmäßig verwendeten Ports zur Verfügung, sodass Sie wahrscheinlich nicht einmal Ihre Tomcat-Einstellungen ändern müssen.

So sieht meine Apache-Konfiguration für diese Site aus

<VirtualHost *:*>
    Servername mysite.example.com
    ProxyRequests Off
    ProxyPass / http://localhost:8080/mysite/
    ProxyPassReverseCookiePath /mysite /
    ProxyPassReverseCookieDomain localhost mysite.example.com
</VirtualHost>

Das Cookie-Zeug ist so, dass Session-Cookies von mod_proxy korrekt übersetzt werden. Sie können mod_proxy auch veranlassen, die Links bei Bedarf neu zu schreiben. In meinem Fall kümmert sich meine Web-App darum.

0