Raffael1984: Wie name-based virtual host einrrichten? XP/VMWare/Debian/Apache

Hallo!

Ich habe folgende Situation:

  • Windows XP und VMWare
  • Im VMWare läuft Debian 5
  • Auf Debian 5 läuft der Apache und OpenSSH
  • VMWare-Netzwerkverbindung über NAT

Ich kann mit dem Firefox über http://IP auf die default-WebSite zugreifen.
Wobei ich das Quell-Verzeichnis in das Shared-Folder /public also für Debian
in /mnt/hgfs/public verlagert habe.

Ich kann auch per Putty über SSH/22 auf Debian zugreifen.

Die Datei /etc/hosts habe ich nun um die Zeile '127.0.0.1 meinedomain' erweitert.

Im Verzeichnis /etc/apache2/sites-available habe ich die Datei 'meinedomain' erstellt und gefüllt mit:

<VirtualHost *:80>
  ServerName meinedomain
  DocumentRoot /mnt/hgfs/public
</VirtualHost>

Ich habe die Site aktiviert per: 'a2ensite meinedomain'

und den Apache neu geladen mit: 'invoke-rc.d apache2 reload'

Keine Fehlermeldungen.

-----------------------------------------------

Ich möchte nun aber per Firefox auf die WebSite zugreifen über 'http://meinedomain'.

Wie erreiche ich das?

Inwiefern ist in der Lösung der FoxyProxy involviert?

Vielen Dank

Raffael

  1. Hi,

    • Windows XP und VMWare
    • Im VMWare läuft Debian 5
    • Auf Debian 5 läuft der Apache und OpenSSH
    • VMWare-Netzwerkverbindung über NAT

    also insgesamt nicht gerade eine triviale Konfiguration.

    Ich kann mit dem Firefox über http://IP auf die default-WebSite zugreifen.

    Das ist schon mal gut.

    Wobei ich das Quell-Verzeichnis in das Shared-Folder /public also für Debian in /mnt/hgfs/public verlagert habe.

    Spielt IMO keine Rolle.

    Die Datei /etc/hosts habe ich nun um die Zeile '127.0.0.1 meinedomain' erweitert.

    Auf welchem System? Auf dem Debian in der VM? Dort hat es für diese Konstellation keine Wirkung. Dort würde es nur für den Fall wirken, dass du unter Debian in der VM einen Browser startest und damit auf den Apachen zugreifst.

    Ich möchte nun aber per Firefox auf die WebSite zugreifen über 'http://meinedomain'.
    Wie erreiche ich das?

    Du musst in die hosts-Datei des Windows-Systems (%systemroot%/system32/drivers/etc/hosts) einen Eintrag mit der IP-Adresse der Debian-VM und dem gewünschten Hostnamen machen.

    Inwiefern ist in der Lösung der FoxyProxy involviert?

    Keine Ahnung - vermutlich hat er gar nichts mit dem Problem zu tun, da er auch die Namensauflösung des OS bemüht.

    So long,
     Martin

    --
    Die Zeit, die man zur Fertigstellung eines Projekts wirklich braucht, ist immer mindestens doppelt so lang wie geplant.
    Wurde dieser Umstand bei der Planung bereits berücksichtigt, gilt das Prinzip der Rekursion.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hey Martin,

      vielen Dank für die schnelle Antwort.

      Ich hab eben nochmal mit nem Kollegen getalked und wie es scheint muss ich erstmal nen richtigen Proxy auf Debian installieren. Wir verwenden hier Squid.

      Die Sache ist nämlich, dass ich Apache entscheiden lassen will anhand der Domain, welche WebSite auszuliefern ist.

      Also:

      • Firefox (mydomain)
      • mydomain1 zu IP entschlüsseln mit FoxyProxy
      • Über IP verbindung zur VM und Apache herstellen
      • Irgendwie Apache vermitteln welche Domain gerufen wurde (hier mydomain)
      • Apache liefert Homepage von mydomain

      mydomain könnte halt auch mydomain1, mydomnain2, ... sein. Die IP bliebe aber ja eh immer die selbe.

      Um dieses Kommunikationsproblem zu lösen werde ich es mal über Squid versuchen.

      Guten Rutsch

      Raffael

      1. Hallo Raffael,

        Die Sache ist nämlich, dass ich Apache entscheiden lassen will anhand der Domain, welche WebSite auszuliefern ist.

        dazu brauchst du aber nach meinem Verständnis keinen Proxy, das macht's nur noch komplexer.

        • Firefox (mydomain)
        • mydomain1 zu IP entschlüsseln mit FoxyProxy
        • Über IP verbindung zur VM und Apache herstellen
        • Irgendwie Apache vermitteln welche Domain gerufen wurde (hier mydomain)

        Letzteres passiert ganz automatisch über den HTTP-Header "Host:", den der Browser mitsendet.

        • Apache liefert Homepage von mydomain

        mydomain könnte halt auch mydomain1, mydomnain2, ... sein. Die IP bliebe aber ja eh immer die selbe.

        Richtig.

        Um dieses Kommunikationsproblem zu lösen werde ich es mal über Squid versuchen.

        Das erscheint mir überflüssig. Okay, ich habe innerhalb meiner Testumgebung kein NAT. Aber selbst wenn, dann musst du dem virtuellen Router "nur" klarmachen, dass HTTP-Anfragen (Port 80) bitte an das virtuelle Debian-System durchgereicht werden sollen.

        Dir auch einen guten Start ins neue Jahr.

        So long,
         Martin

        --
        Der Tag geht und geht nicht vorbei, aber ein Jahr ist rum wie nix.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  2. Hi!

    • VMWare-Netzwerkverbindung über NAT

    Warum NAT und nicht Bridged? Wenn deine virtuellen Maschinen nicht aus bestimmten Gründen ein eigenes nicht gleichberechtigtes Netzwerk bilden sollen, wäre Bridged zu empfehlen. Die Nachteile von NAT sollten nur gut überlegt in Kauf genommen werden.

    • Windows XP und VMWare
    • Im VMWare läuft Debian 5
      Die Datei /etc/hosts habe ich nun um die Zeile '127.0.0.1 meinedomain' erweitert.
      Ich möchte nun aber per Firefox auf die WebSite zugreifen über 'http://meinedomain'.

    Geht nur von einem auf dem Debian-System laufenden Firefox, weil nur dieser die Namensauflösung über die /etc/hosts durchführen kann.

    Wie erreiche ich das?

    Jeder, der meinedomain erreichen können soll, muss in der Lage sein, sie in die IP-Adresse auflösen zu können. Wenn du nicht auf allen Rechnern eine hosts-Datei zu Fuß pflegen willst, solltest du dir Gedanken über einen DNS-Server machen - und sicher auch, wie der per DHCP (oder wie auch immer du die IP-Konfiguration in deinem Netzwerk gestaltet hast) den beteiligten Rechnern bekanngegeben wird.

    Inwiefern ist in der Lösung der FoxyProxy involviert?

    Ein Proxy könnte seine eigene Namensauflösung mitbringen, ansonsten nutzt er die auf dem System, auf dem er läuft. WWW-Clients, die einen Proxy verwenden, lösen den Zielnamen nicht selbst auf, und müssen nur den Proxy erreichen können. Der muss, um meinedomain auflösen zu können, sich also im Debian-System befinden. Deine Browser müssen dann nur den Weg zum Proxy kennen.

    Lo!

  3. Um für kommende Generationen meine Lösung zu dokumentieren:

    x) Neue Zeile in /etc/hosts einfügen: '[VM-IP] meinedomain'

    x) Neue Datei ‘meinedomain’ in /etc/apache2/sites-available erstellen und füllen mit:

    <VirtualHost *:80>
    DocumentRoot /verzeichnis/meinedomain
    ServerName meinedomain
    </VirtualHost>

    x) a2ensite meinedomain
    x) /etc/init.d/apache2 restart
    x) /etc/init.d/squid restart

    FoxyProxy-Konfiguration:

    • IP: [VM-IP]
    • Port: 3128 (Default-IP von Squid)
    • Muster: 'http://meinedomain*' (Stern wichtig)

    Frohes Neues