Quantcast
Channel: Multimediaforum
Viewing all articles
Browse latest Browse all 4603

Apache und Virtuelle Hosts

$
0
0
Guten Morgen zusammen,

ich hänge mich mal hier an das Thema ran, da es doch meinem "Problem" ziemlich ähnelt.
Und zwar sieht es bei mir so aus, dass ich zwei Webserver im LAN auf unterschiedlichen Maschinen, also unterschiedlichen IPs.
Davor soll ein Apache stehen, der quasi als Reverse Proxy auf die beiden Webserver dienen soll.

Das Wunschszenario wäre, dass er anhand eines teils der URL entsprechend auf die Server verweist bzw. die Requests von den Server holt.
So nach dem Motto:

http://meinedomain.de/serverEins/subdir/index.html

Der Request soll dann die index.html aus dem subdir vom Webserver serverEins dem Benutzer darstellen.

http://meinedomain.de/serverZwei/wasweissichwas.html

Dies hier zeigt dann die wasweissichwas.html vom Webserver serverZwei aus dem Lan an.

Das habe ich schon mal nicht hinbekommen, also dachte ich mir, dass ich das anhand der Domain machen kann.

http://eins-meinedomain.de/subdir/index.html

Das landet quasi auf dem Apache, der der Reverse Proxy ist, zeigt aber dennoch die index.html vom serverEins an.

http://zwei-meinedomain.de/wasweissichwas.html

Da kommt dann die wasweissichwas.html vom Server zwei.

Nun zu dem, was ich bisher gemacht habe.
Erst mal unter SLES 11 den Apache und das Modul mod_proxy ans fliegen gebracht.
Im Serverroot mal eine index.html angepasst "Hier ist eine Baustelle :)", d.h. die wird angezeigt, wenn ich einfach nur http://meinedomain.de eingebe.
Im Verzeichnis /etc/apache2/vhosts.d habe ich nun jeweils zwei conf-Dateien erstellt:

Code:

NameVirtualHost LAN-IP-ServerEins:8888

<VirtualHost LAN-IP-ServerEins:8888>
    ServerAdmin webmaster@meinedomain.de
    ServerName serverEins.meinedomain.de

    ErrorLog /var/log/apache2/serverEins-error_log
    CustomLog /var/log/apache2/serverEins-access_log combined

    HostnameLookups Off

    UseCanonicalName Off

    ServerSignature On

    <IfModule mod_userdir.c>
        UserDir public_html
        Include /etc/apache2/mod_userdir.conf
    </IfModule>


    ProxyPass / http://LAN-IPServerEins:8888/
    ProxyPassReverse / http://LAN-IP-ServerEins:8888/
    DefaultType text/html

</VirtualHost>

und

Code:

NameVirtualHost LAN-IP-ServerZwei:8080

<VirtualHost LAN-IP-ServerZwei:8080>
    ServerAdmin webmaster@meinedomain.de
    ServerName serverZwei.meinedomain.de

    ErrorLog /var/log/apache2/serverZwei-error_log
    CustomLog /var/log/apache2/serverZwei-access_log combined

    HostnameLookups Off

    UseCanonicalName Off

    ServerSignature On

    <IfModule mod_userdir.c>
        UserDir public_html
        Include /etc/apache2/mod_userdir.conf
    </IfModule>


    ProxyPass / http://LAN-IPServerZwei:8080
    ProxyPassReverse / http://LAN-IP-ServerZwei:8080/
    DefaultType text/html

</VirtualHost>

Was ich jetzt komisch finde ist die Tatsache, dass wenn ich die conf für ServerZwei lösche und die für ServerEins wie folgt einstelle, dann komme ich zumindest via http://serverEins-meinedomain.de/subdir/index.html auf die index.html auf dem ServerEins

Code:

<VirtualHost *:80>
    ServerAdmin webmaster@meinedomain.de
    ServerName serverEins.meinedomain.de

    ErrorLog /var/log/apache2/serverEins-error_log
    CustomLog /var/log/apache2/serverEins-access_log combined

    HostnameLookups Off

    UseCanonicalName Off

    ServerSignature On

    <IfModule mod_userdir.c>
        UserDir public_html
        Include /etc/apache2/mod_userdir.conf
    </IfModule>


    ProxyPass / http://LAN-IPServerEins:8888/
    ProxyPassReverse / http://LAN-IP-ServerEins:8888/
    DefaultType text/html

</VirtualHost>

Passe ich nun die config für ServerZwei so an wie für ServerEins nur mit dem anderen Domainnamen, dann kommt die Meldung:

Code:

[warn] _default_ VirtualHost overlap on port 80, the first has precedence
Ist für mich auch logisch, denn 2 x *:80 als Virtual Host macht ja nicht wirklich viel Sinn.

Hat jemand einen Tip, wo es hier bei der Konfig klemmt?

Viewing all articles
Browse latest Browse all 4603