Ankündigung

Einklappen
Keine Ankündigung bisher.

Wildcard Subdomains mit virtuellen Hosts

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wildcard Subdomains mit virtuellen Hosts

    Hallo zusammen,
    Ich hoffe, ich bin im richtigen Forum, und der Titel ist aussagegräftig.

    Also es geht darum. Ich bin gerade dabei, ein Browsergame zu programmieren, soweit kein Problem. In diesem Browsergame soll es mehrere Spielwelten geben. Die Autentifizierung erfolgt mit einer Cookie Session. Ich möchte aber, dass der Nutzer in verschiedenen Welten gleichzeitig eingeloggt sein kann. Deswegen habe ich an Virtuelle Hosts (Apache) gedacht, um die Sessions zu "trennen".
    Die Virtuellen Hosts sollen dann über Subdomains, also z.B. welt1.meinedomain.de angesprochen werden.

    Frage 1: Trennen virtuelle Hosts Sessions, also hat jeder virtuelle Host dann extra Sessions oder nicht?

    Des Weiteren möchte ich den Nutzern aber die Möglichkeit bieten, selber eine Welt zu erstellen. Deswegen möchte ich die Welten nicht über Subdomains, sondern über Wildcard Subdomains ansprechen, damit ich nicht immer die DNS Konfiguration ändern muss. Jetzt kommt aber das Problem: Ich könnte zwar (denke ich) per PHP theoretisch auch Virtuelle Hosts erstellen, aber der Webserver muss ja neu gestartet werden, um die Änderungen an den Virtuellen Hosts zu übernehmen. Es geht aber schlecht, einen Server immer neu zu starten. Mein erster Lösungsansatz ist deswegen, dass ich einfach einige Virtuelle Hosts habe, die dann Teilweise nicht verwendet werden, und die ich dann einfach nutzen kann. Ich weiß aber nicht, ob das der richtige Lösungsansatz ist.
    Frage 2: Trennen über Wildcard Subdomains angesprochene virtuelle Hosts Sessions (müssten sie doch eigentlich, oder?)

    Frage 3:Wie könnte man das Ganze sonst noch lösen?

    //Edit: Google und Sufu habe ich benutzt

    Vielen Dank im Vorraus

  • #2
    Hallo sagato0816,

    im beschrieben Fall könnte ich mir Folgendes vorstellen.

    Richte einen virtuellen Host nicht für die Domain (Second Level Domains), sonder für die im DNS eingetragene IP ein. Da sich der DNS beim Auflösen normalerweise nur an der Second Level Domains orientiert, werden auch alle Anfragen zu weiteren Unter-Domains an diesen virtuellen Host übermittelt. So landen alle Anfragen beim selben virtuellen Host und man kann die Unterscheidung nun selbst im PHP über das Header-Feld „Host“ vornehmen.

    Gruss, BrigitteW

    Kommentar


    • #3
      Hallo.
      Vielen Dankf für die Antwort erstmal!

      Also wenn ich das richtig verstanden habe, soll ich eine Wildcard Subdomain erstellen, die auf die ip meines Servers "zeigt" und dann per PHP auslesen, an welche Welt die aktuelle Anfrage geht, und dann die passende Sitzung "laden", oder? Die Idee hört sich gut an!

      Hat vieleicht noch jemand Ideen oder kann mir sagen, ob das Ganze Nachteile hat? Ansonsten werde ich das warscheinlich so machen.

      Kommentar


      • #4
        Zitat von sagato0816 Beitrag anzeigen
        Frage 1: Trennen virtuelle Hosts Sessions, ...
        Nein. HTTP (insbesondere der Cookie-Header) trennt Sessions. Bei einem einzigen Host macht man sich darüber keine Gedanken; du musst dir darüber Gedanken machen. Zum Beispiel musst du eventuell über [MAN]session_set_cookie_params[/MAN] einstellen, an welche Domains der Browser den Session-Cookie zurücksenden soll (ich weiß nicht was da der Default-Wert ist).

        Zitat von sagato0816 Beitrag anzeigen
        Deswegen möchte ich die Welten nicht über Subdomains, sondern über Wildcard Subdomains ansprechen, damit ich nicht immer die DNS Konfiguration ändern muss.
        Die Wildcard Subdomain muss natürlich ersteinmal im DNS so konfiguriert sein. Sonst kann der Browser den Namen nicht auflösen und in Folge dessen auch keine HTTP-Anfrage an deinen Server senden.

        Zitat von sagato0816 Beitrag anzeigen
        ... aber der Webserver muss ja neu gestartet werden, um die Änderungen an den Virtuellen Hosts zu übernehmen.
        Komischer Webserver. Normalerweise muss der Webserver nur angewiesen werden, die Konfiguration neu einzulesen. Apache kann das über das Kommando
        Code:
        apachectl graceful
        Zitat von sagato0816 Beitrag anzeigen
        ... dass ich einfach einige Virtuelle Hosts habe, die dann Teilweise nicht verwendet werden, und die ich dann einfach nutzen kann.
        Du musst ja trotzdem noch sagen welcher der virtuellen Hosts plötzlich unter welchem Namen angesprochen werden soll. Du gewinnst also nichts.

        Allerdings wird jede Anfrage auf die IP-Adresse/Port des Webserver von irgendeinem (V)Host beantwortet. Schau unter An In-Depth Discussion of Virtual Host Matching nach welchen Regeln das passiert. Richte einen ein, der für alle nicht explizit konfigurierten Namen zuständig ist und verwende, wie BrigitteW schon sagte, den Host-Header um zu unterscheiden.

        Zitat von sagato0816 Beitrag anzeigen
        Frage 2: Trennen über Wildcard Subdomains angesprochene virtuelle Hosts Sessions
        Nein. HTTP (insbesondere der Cookie-Header) trennt Sessions. Bei einer einzigen Subdomain macht man sich darüber keine Gedanken; du musst dir darüber Gedanken machen. Zum Beispiel musst du eventuell über [MAN]session_set_cookie_params[/MAN] einstellen, an welche Domains der Browser den Session-Cookie zurücksenden soll (ich weiß nicht was da der Default-Wert ist).

        Kommentar


        • #5
          ... Also wenn ich das richtig verstanden habe, soll ich eine Wildcard Subdomain erstellen ...
          Nein, einfach die IP des Servers, die zur "Haupt-Domain" im DNS eingetragen ist, als virtuellen Host eintragen.

          Code:
          <VirtualHost 10.1.2.3>
          ServerName host.foo.com
          ...
          </VirtualHost>

          Kommentar


          • #6
            Zitat von BrigitteW Beitrag anzeigen
            Nein, einfach die IP des Servers, die zur "Haupt-Domain" im DNS eingetragen ist, als virtuellen Host eintragen.

            Code:
            <VirtualHost 10.1.2.3>
            ServerName host.foo.com
            ...
            </VirtualHost>
            Ich meine, in der DNS konfiguration. Sonst würde ja z.B.
            Code:
            welt1.meinedomain.de
            nicht aufgelöst, wenn in der DNS Konfiguration nur
            Code:
            meinedomain.de
            weitergeleitet wird. Ich müsste also trotzdem einrichten, dass alles was vor meinedomain.de steht, auch auf meinedomain.de weitergeleitet wird, oder habe ich das falsch verstanden?

            Kommentar


            • #7
              Zitat von sagato0816 Beitrag anzeigen
              Ich müsste also trotzdem einrichten, dass alles was vor meinedomain.de steht, auch auf meinedomain.de weitergeleitet wird, oder habe ich das falsch verstanden?
              DNS löst nur das auf was du einstellst. Wenn die Subdomain xxx.example.de nicht definiert ist kann die auch nicht aufgelöst werden. Du musst aber nicht jede Subdomain einzeln angeben, es geht auch ein *.example.de.

              Kommentar

              Lädt...
              X