Verschiedene Domains an unterschiedlichen Ports

Alles, was den Apache betrifft, kann hier besprochen werden.

Verschiedene Domains an unterschiedlichen Ports

Postby Achmed » 26. January 2007 10:03

Hallo erst einmal.
Ich möchte Domains an unterschiedlichen Ports lauschen lassen.
bsp. ich.dyndns.tv an Port 80
du.dyndns.tv an Port 5000

Dazu habe ich die entsprechenden Vhosts angelegt.
edit: Natürlich auch ein Listen 5000 eingefügt!

Klappt soweit auch, mit einer Einschänkung:
Wenn ich du.dyndns.tv ohne Portangabe aufrufe, werde ich auf ich.dyndns.tv umgeleitet.

Bei du.dyndns.tv:5000 <-- richtige Seite
Bei du.dyndns.tv <-- umleitung zu ich.dyndns.tv

Wie kann ich das verhindern?

auszug aus den Vhosts:
Code: Select all
NameVirtualHost 192.168.2.107:5000
<VirtualHost 192.168.2.107:5000>
        ServerAdmin webmaster@localhost

        DocumentRoot /usr/share/phpmyadmin
        ServerName du.dyndns.tv
        ServerAlias du.dyndns.tv *.du.dyndns.tv

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

        ServerSignature On
</VirtualHost>

NameVirtualHost 192.168.2.107:80
<VirtualHost 192.168.2.107:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/ich.dyndns.tv/
        ServerName      ich.dyndns.tv
        ServerAlias     ich.dyndns.tv *.ich.dyndns.tv

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

        ServerSignature On
</VirtualHost>


Danke schonmal :)
Achmed
 
Posts: 3
Joined: 26. January 2007 09:43

Postby Wiedmann » 26. January 2007 11:41

Wenn ich du.dyndns.tv ohne Portangabe aufrufe, werde ich auf ich.dyndns.tv umgeleitet.

Wie kann ich das verhindern?

Gar nicht. Wenn du in einem Browser einen URI ohne Port eingibst, nimmt dieser automatisch Port 80 für die Verbindung.

Warum machst du es nicht gleich über richtige namebased VHosts auf Port 80 (wie du sie schon unötigerweise jetzt 2 Mal angelegt hast, für eigentlich aktuell IP-basierende VHosts)?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Achmed » 26. January 2007 12:28

Unter der einen dyndns ist phpmyadmin zu erreichen, und ich will, dass man phpmyadmin nicht über port 80 erreicht, das ist eigentlich alles.

Wenn die phpmyadmin-URL ohne Port angegeben wird, soll bestimmt nicht der Inhalt einer anderen Domain angezeit werden (Das ist es, was ich gerade verhindern will.), lieber ne error-page (optional).
Domain 1 soll nur unter Port 5000 anzusprechen sein, sonst Fehler.
Domain 2 soll nur unter Port 80 anzusprechen sein, sonst Fehler.

Ist das wirklich gar nicht machbar?
Achmed
 
Posts: 3
Joined: 26. January 2007 09:43

Postby Wiedmann » 26. January 2007 12:48

Wenn die phpmyadmin-URL ohne Port angegeben wird, soll bestimmt nicht der Inhalt einer anderen Domain angezeit werden (Das ist es, was ich gerade verhindern will.), lieber ne error-page (optional).

Wenn phpMyAdmin wirklich nur in einem VHost eingerichtet wäre, dann wäre das auch jetzt schon so. (auch wenn beide VHosts auf Port 80 laufen).
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Achmed » 26. January 2007 13:27

Ich hab das jetzt ganz anders gemacht:
Code: Select all
NameVirtualHost *:5000
<VirtualHost *:5000>
   DocumentRoot   /var/www/errorsite
   ServerName   apache2-fehler
</VirtualHost>

<VirtualHost *:5000>
        ServerAdmin webmaster@localhost

        DocumentRoot /usr/share/phpmyadmin
        ServerName du.dyndns.tv
        ServerAlias du.dyndns.tv *.du.dyndns.tv

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

        ServerSignature On
</VirtualHost>

NameVirtualHost *:80
<VirtualHost *:80>
   DocumentRoot   /var/www/errorsite
   ServerName   apache2-fehler
</VirtualHost>

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/ich.dyndns.tv/
        ServerName      ich.dyndns.tv
        ServerAlias     ich.dyndns.tv *.ich.dyndns.tv

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        LogLevel warn
        CustomLog /var/log/apache2/access.log combined

        ServerSignature On
</VirtualHost>

Das mag so nicht ganz korrekt sein, erfüllt aber seinen Zweck.
Apache-Doku wrote:Wenn nun eine Anfrage eintrifft, prüft der Server zuerst, ob sie eine IP-Adresse verwendet, die der NameVirtualHost-Anweisung entspricht. Ist dies der Fall, dann sieht er sich jeden <VirtualHost>-Abschnitt mit einer passenden IP-Adresse an und versucht den einen zu finden, dessen ServerName- oder ServerAlias-Anweisung mit dem gewünschten Hostnamen übereinstimmt. Findet er einen, dann verwendet er die Konfiguration dieses Servers. Wird kein passender virtueller Host gefunden, dann wird der erste angegeben virtuelle Host verwendet, dessen IP-Adresse paßt.

Die Folge davon ist, dass der erste aufgeführte virtuelle Host der Standard-Virtual-Host ist. Die DocumentRoot-Anweisung des Hauptservers wird niemals verwendet, wenn eine IP-Adresse mit einer NameVirtualHost-Anweisung übereinstimmt. Wenn Sie eine spezielle Konfiguration für Anfragen angeben möchten, die keinem bestimmten virtuellen Host entsprechen, packen Sie diese Konfiguration einfach in einen <VirtualHost>-Container und führen diesen als erstes in der Konfigurationsdatei auf.


Wahrscheinlich wäre es auch einfacher gegangen?
Naja, so hab ich jetzt zumindest meine beiden Domains alleine auf einem eigenen Port.
Achmed
 
Posts: 3
Joined: 26. January 2007 09:43


Return to Apache

Who is online

Users browsing this forum: No registered users and 294 guests