[Apache2] Virtuelle Hosts Problem

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    ich habe auf meinem Pi den Apache zu laufen und würde gerne zwei unterschiedliche Domains auf jeweils unterschiedliche Verzeichnisse weiterleiten.

    Mein Raspberry Pi ist über einen DDNS erreichbar: ddns.seite1.de

    Meine beiden Domains, nennen wir sie mal seite1.de und seite2.de, sind von Strato und werden als Umleitung auf ddns.seite.de weitergeleitet.

    Meine virtuelle Host-Konfiguration:

    Code
    <VirtualHost *:80>
    ServerName seite1.de
    DocumentRoot /var/www/seite1
    </VirtualHost>
    
    <VirtualHost *:80>
    ServerName seite2.de
    DocumentRoot /var/www/seite2
    </VirtualHost>

    Leider werde ich immer von allen drei Domains auf das vorinstallierte html Verzeichnis weitergeleitet und kann den Fehler auch nach stundenlanger Suche und Recherche nicht finden.:wallbash:

    LG :)

    Einmal editiert, zuletzt von Smile457 (4. August 2018 um 10:05)

  • Also ich bin mir zwar nicht sicher, da kein Web Experte, aber du verwendest bei beiden den Port 80, du musst dafür 2 unterschiedliche Ports verwenden. Welche dafür geeignet sind bitte ergoogeln.

    Viel Unsinn^^

  • Ich bin ebenfalls kein Webexperte (und schon gar keiner für Apache), aber das stimmt so nicht. Du kannst durchaus mehrere virtuelle Server Hosts auf dem selben Port betreiben.

    Hast Du in der Konfiguration tatsächlich "DocumentRoot" ohne Abstand und Zeilenumbruch hinter der Domain stehen oder ist das ein Copy&Paste-Unfall?

    Einmal editiert, zuletzt von Manul (4. August 2018 um 10:27)

  • apache2ctl -S   zeigt dir alle angelegten vhosts an.

    Evtl hast du

    - irgendeine andere .conf geladen, die für die Umleitung sorgt

    - apache nach Anlegen der vhosts.conf nicht neu gestartet

    - apache-Logs nicht gelesen (/var/log/apache2/* )

    Apache-Hilfe zum Thema: https://httpd.apache.org/docs/2.4/de/vhosts/name-based.html

    Hofei nein, das nennt sich namebased virtual hosts und funktioniert, wie der Name schon sagt, allein über den aufgerufenen Hostnamen (gleiche IP, gleicher Port)

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • aber du verwendest bei beiden den Port 80, du musst dafür 2 unterschiedliche Ports verwenden

    Nein, das ist ja der Sinn von virtuellen namensbezogenen Hosts. Die Auflösung erfolgt nach Domainnamen.


    Du kannst durchaus mehrere virtuelle Server auf dem selben Port betreiben.

    Virtuelle Server sind nun was völlig anderes!


    ... werden als Umleitung auf ddns.seite.de ...

    Da liegt das Problem! Bei der Weiterleitung werden die ursprünglichen Domainnamen nicht im Header übertragen. Bei deinem Apache kommt nur noch ddns.seite.de an. Somit läuft die Weiterleitung ins Leere und damit auf das Standardverzeichnis. Mit DDNS ist maximal eine Aufteilung von Subdomains auf virtuelle Hosts möglich, das muß vom Anbieter aber unterstützt werden (Stichwort Wildcard).

    Für namensbezogene Hosts benötigst Du zwingend eine feste IP oder mächtig viele und komplizierte workarounds, die auch von den Servern wo deine Domains gehostet sind, unterstützt werden müssten.

  • Ich bin ebenfalls kein Webexperte (und schon gar keiner für Apache), aber das stimmt so nicht. Du kannst durchaus mehrere virtuelle Server auf dem selben Port betreiben.

    Hast Du in der Konfiguration tatsächlich "DocumentRoot" ohne Abstand und Zeilenumbruch hinter der Domain stehen oder ist das ein Copy&Paste-Unfall?

    Ja, war ein C&P Fail, wurde korrigiert.

    Muss die Default-Conf aktiviert bleiben? Oder sollte diese mittels a2dissite deaktiviert werden?

    Ich habe meine Confs a2ensite aktiviert und auch apache neugestartet

    Die Logs habe ich mir auch schon angeguckt und auch die Apache-Hilfe Seite benutzt aber wie gesagt, kann ich den Fehler nicht finden.:conf:

    Da liegt das Problem! Bei der Weiterleitung werden die ursprünglichen Domainnamen nicht im Header übertragen. Bei deinem Apache kommt nur noch ddns.seite.de an. Somit läuft die Weiterleitung ins Leere und damit auf das Standardverzeichnis. Mit DDNS ist maximal eine Aufteilung von Subdomains auf virtuelle Hosts möglich, das muß vom Anbieter aber unterstützt werden (Stichwort Wildcard).

    Für namensbezogene Hosts benötigst Du zwingend eine feste IP oder mächtig viele und komplizierte workarounds, die auch von den Servern wo deine Domains gehostet sind, unterstützt werden müssten.

    Ja, genau das habe ich mir auch gedacht, dass das an dieser Weiterleitung liegt.

    raspiprojekt Also könnte ich technisch gesehen, seite1.de auf http://www.seite1.de weiterleiten und http://www.seite1.de als CNAME mit ddns.seite1.de verbinden?

    Dann informiere ich mich mal, :danke_ATDE: an alle.

    3 Mal editiert, zuletzt von Smile457 (4. August 2018 um 10:42)

  • Also könnte ich technisch gesehen, seite1.de auf http://www.seite1.de weiterleiten und http://www.seite1.de als CNAME mit ddns.seite1.de verbinden?

    Man kann alles irgendwo hinleiten, aber ob das Sinn macht, ist dann eine andere Frage. Nutzt Du den Nameserver von Strato ist dort bereits http://www.seite1.de als spezielle Subdomain eingetragen und zeigt auf die gleiche IP-Adresse wie seite1.de. Da brauchst du nichts umleiten. Ich habe fix mal einen DNS-Server (bind9) auf einem RasPi aufgesetzt. Apache war schon drauf. Für hafensafari.com habe ich keine http://www.subdomain eingerichtet. Für ferncheck.de habe ich eine. Ferncheck.de ist also wie eine Domain auf strato eingerichtet. Würde ich die Domain jetzt auf einen DDNS umleiten, ist alles weg.

    Bevor ich das alles abtippe, schau mal hier, wie man das Logging einstellen kann, damit du die Hosts mitloggen kannst: http://domainhelp.com/web/how-to-log…many-hostnames/

    Am einfachsten ist, du hängst die Loggingfunktion an einen Virtuellen host, der auf alles hört und schaust mal, was passiert, wenn du die verschiedenen Umleitungen machst.

    Code
    <VirtualHost *:80>

  • Code
    <VirtualHost *:80>
    ServerName seite1.de
    ServerAlias seite1.de
    DocumentRoot /var/www/seite1
    </VirtualHost>


    Damit kannst du jetzt per http://seite1.de auf deine Webseite zugreifen.

    http://www.seite1.de wird nicht funktionieren.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Hallo Jörg.

    Wenn er bei seinem Hoster den DNS von seite1.de auf ddns.seite1.de umgebogen hat kommt er an seinem PI mit seite1.de an.

    Hab ich bei mir, allerdings mit Subdomains, genau so gemacht.

    Der CNAME Record von blah.foo.de zeigt auf blah.gotdns.com. Auf dem Webserver komme ich mit blah.foo.de.

    Die Apache .conf muss also auf ServerAlias blah.foo.de reagieren.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Wieviele virtuelle Hosts betreibst du? Eigentlich kann das so nicht klappen, denn normalerweise wird der geht bei der Weiterleitung der Ursprüngliche Domainname im Header verloren.

    Es ist ja keine Weiterleitung ala meta http-equiv="refresh" sondern das DNS Response wird "verbogen"

    Im DNS meiner Domain wird auf die dyndns Adresse verwiesen.

    Die DNS Anfrage nach blah.foo.de bekommt als Antwort die IP von foo.gotdns.com, also die dynip meines T-Com Anschluß.

    Der Browser geht mit dem http request dann also direkt auf die IP zu Hause. So hast du im Header auch blah.foo.de.

    Ich betreibe so zur Zeit fünf Subdomains von drei TLD als VHOSTS auf meinem Server zu Hause, alle SSL mit eigenen Letsencrypt Zertifikaten.

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!