Sep 122015
 

Wer zu Hause einen Server betreibt kennt vermutlich das Problem, dass verschiedenen Dienste unter dem selben Port laufen sollen. Die einfachste Lösung ist oft, Verzeichnisse oder Subdomains anzulegen, sodass jeder Dienst einen eigenen Pfad hat. z.B. meineSeite.de/blog oder blog.meineSeite.de Wenn ein zweiter Server dazu kommt, oder die Inhalte von verschiedenen Webservern ausgeliefert werden sollen, ist das nicht mehr so einfach möglich. Bis gestern habe ich zu diesem Zweck, im Router Port 80 (unverschlüsselte Verbindungen) zum Server meiner Freundin weiter geleitet und Port 443 (verschlüsselte Verbindungen) zu meinem Server weiter geleitet.

Da ich derzeit ein Portfolio in Java entwickle, dass im Tomcat läuft und unter Port 80 erreichbar sein soll, habe ich mich etwas schlau gemacht und bin zu folgendem Ergebnis gekommen:

Jeder Anwendung wird ein Hostname zugewiesen. Das Portfolio erhält z.B. portfolio.noip.me* und der Server meiner Freundin tt-rss.noip.me*. Anstatt wie bisher, Port 80 dem Server meiner Freundin zuzuweisen ist er nun meinem Server zugewiesen.

Der Apache Webserver auf meinem Server fungiert als reverse Proxy und leitet Anfragen auf Basis des angegebenen Hostnamen weiter. So werden Anfragen an portfolio.noip.me* an den Tomcat  auf http://localhost:8080/ und Anfragen an tt-rss.noip.me* an die interne IP des zweiten Servers weitergeleitet. Dies geschieht durch folgende Apache config:

*) Name geändert

NameVirtualHost *:80

# general config: takes all port 80 requests
# requests to tt-rss.noip.me go to the RPi (192.168.0.8)
# requests to portfolio.noip.me go to Tomcat (localhost:8080)
<VirtualHost *:80>
    ServerName portfolio.noip.me
    ServerAlias tt-rss.noip.me

    RewriteEngine on
    ProxyRequests off
    ProxyPreserveHost On

    RewriteCond %{HTTP_HOST} ^tt-rss.noip.me(:80)?$
    RewriteRule /(.*) http://192.168.0.3/$1 [P]

    RewriteCond %{HTTP_HOST} ^portfolio.noip.me(:80)?$
    RewriteRule /(.*) http://localhost:8080/$1 [P]
</VirtualHost>

Zusammenfassung:

Mit der richtigen Konfiguration lassen sich komplex erscheinende Probleme einfach lösen. Der Vorteil an dieser Konfiguration ist gegenüber anderen, dass ich am Server meiner Freundin keine Konfiguration durchführen musste und, dass es keinerlei Konflikte mit identischen Pfaden mehr gibt.

Credits:

Die Konfiguration habe ich von folgender Seite übernommen und angepasst. Vielen Dank.
https://rvdb.wordpress.com/2012/04/26/reverse-proxying-tomcat-webapps-behind-apache/

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

What is 4 + 11 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)