httpd auf CentOS löst nur den ersten VirtualHost auf

httpd auf CentOS löst nur den ersten VirtualHost auf

Ich habe gerade einen neuen Cloud-Server bekommen und während ich ihn einrichte, kann ich auf das Web-Root zugreifen, indem ich meinen Browser auf die IP-Adresse meines Servers richte, aber die Domänennamen werden immer noch verbreitet, sodass sie nicht aufgelöst werden, wenn ich sie aufrufe.

Wenn ich meinen Browser auf die IP-Adresse meines Servers richte, wird er tatsächlich auf den ersten von mir eingerichteten VirtualHost aufgelöst, dersollte nichtder Stammordner sein. Dieser VirtualHost sollte angezeigt werden, wenn ich gehe zuIP-Adresse/Pfad, nicht nurIP Adresse.

Server-Setup:
Gastgeber:Rackspace Cloud Server
Betriebssystem:CentOS 6
Virtuelle Hosts:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.wphax.com
    ServerAlias wphax.com *.wphax.com
    DocumentRoot /var/www/wphaxcom
    ErrorLog /var/www/wphaxcom/error.log
    CustomLog /var/www/wphaxcom/access.log combined
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.dnadvanced.com
    ServerAlias dnadvanced.com *.dnadvanced.com
    DocumentRoot /var/www/dnadvancedcom
    ErrorLog /var/www/dnadvancedcom/error.log
    CustomLog /var/www/dnadvancedcom/access.log combined
</VirtualHost>

Irgendwelche Ideen, was dies verursachen könnte und wie ich es so einrichten könnte, dass das Stammverzeichnis nicht durch Eingabe der IP-Adresse zugänglich ist, die Domänennamen aber korrekt in die angegebenen Ordner aufgelöst werden? Danke.

Antwort1

Von demNamensbasierte Unterstützung für virtuelle HostsArtikel in der Apache-Serverdokumentation:

IP-basierte virtuelle Hosts verwenden die IP-Adresse der Verbindung, um den richtigen zu bedienenden virtuellen Host zu bestimmen. [...]

Namensbasiertes virtuelles Hosting ist normalerweise einfacher, da Sie nur Ihren DNS-Server so konfigurieren müssen, dass jeder Hostname der richtigen IP-Adresse zugeordnet wird, und dann den Apache-HTTP-Server so konfigurieren müssen, dass er die verschiedenen Hostnamen erkennt. [...]

Durch die direkte Angabe einer IP-AdresseSindIm Wesentlichen wird der erste virtuelle Host ausgewählt, der in Ihrer Konfigurationsdatei aufgeführt ist. Da Sie in der Konfigurationsdatei nie eine IP-Adresse angegeben haben, überwacht dieser Host alle IPs. Wie Apache bestimmt, welche Website bereitgestellt werden soll, wird durch die Informationen bestimmt, die in den HTTP-Headern der Client-Anforderung empfangen werden.

Sofern Sie nicht über unabhängige IP-Adressen oder unterschiedliche Portnummern auf beide virtuellen Hosts zugreifen können (z. B. indem Sie den zweiten auf Port 81 einstellen), müssen Sie warten, bis die Änderungen an Ihrem Domänennamen wirksam werden.


Wenn duWirklichWenn Sie den Server jetzt testen müssen, können Sie versuchen, die HTTP-Header nach jeder Anfrage manuell zu ändern (mit etwas wie demManipulationsdatenAdd-on für Firefox), damit Apache Ihrem Browser die richtige Seite bereitstellt.

verwandte Informationen