Machen Sie eine lokale Apache2-Installation mit mehreren virtuellen Hosts im Netzwerk zugänglich

Machen Sie eine lokale Apache2-Installation mit mehreren virtuellen Hosts im Netzwerk zugänglich

Auf meiner Entwicklungsmaschine (Debian 10) läuft ein lokaler Apache2- und MariaDB-Server. Ich verwende virtuelle Hosts, damit mehrere Websites gleichzeitig verfügbar sein können. Um mein Ziel zu erreichen, gehe ich die folgenden Schritte durch:

1) Erstellen und bearbeiten Sie die Conf-Datei für die Website.sudo nano /etc/apache2/sites-available/website.conf

2) Füllen Sie die Datei mit folgendem:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName website.local
    ServerAlias www.website.local
    DocumentRoot /var/www/website/public_html/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

3)sudo a2ensite website.conf

4)sudo systemctl reload apache2

5) Bearbeiten Sie die Hosts-Datei sudo nano /etc/hostsund fügen Sie die folgende Zeile hinzu:127.0.0.1 website.local

An diesem Punkt funktioniert es. Wenn ich gehe, http://website.localwerde ich auf die neu erstellte lokale Website umgeleitet.

Wenn ein anderer Computer auf die IP-Adresse meines PCs zugreift (sagen wir, er ist …), 10.0.0.100greift er auf meine /var/www/html/index.htmlDatei zu. Ich habe keine Ahnung, warum das funktioniert, da ich es nie eingerichtet habe. Aber es funktioniert.

Mein Wunsch: Wenn ich 10.0.0.100auf einem PC in meinem Netzwerk auf gehe, öffnet sich eine Seite, auf der ich (manuell) eine Liste platzieren kann, die zu den lokalen Websites weiterleitet, die ich habe. Zum Beispiel:

<ul>
    <li><a href="http://website1.10.0.0.100/">Website1</a></li>
    <li><a href="http://website2.10.0.0.100/">Website2</a></li>
    <li><a href="http://website3.10.0.0.100/">Website3</a></li>
</ul>

Ich möchte in die richtige Richtung gelenkt werden, da ich im Moment nicht weiß, wie ich das erreichen soll.

Antwort1

Was Sie tun möchten, könnte erreicht werden, indem Sie die entsprechenden Namen (auch bekannt als website.local) bei Ihrem Netzwerk-DNS registrieren.

Ein Name wie dieser website1.10.0.0.100ist einfach unmöglich selbst zu implementieren, da er mit einer Zeichenfolge ( website1) beginnt und von jedem Client als FQDN betrachtet wird. Daher wird jeder Client versuchen, herauszufinden, welcher DNS-Server für die .100Top-Level-Domain maßgebend ist ... und wie Sie wahrscheinlich vermutet haben, existiert diese TLD nicht.

Der einfachste Weg, drei verschiedene Sites auf Ihrem Computer zu implementieren, ohne DNS zu ändern, ist:

  • Verwenden Sie drei verschiedene IP-Adressen auf Ihrem Computer (mit ifconfig eth0 add 10.0.0.101, ifconfig eth0 add 10.0.0.102, usw.)

  • Implementieren Sie IP-basierte virtuelle Hosts auf Ihrem Apache.

  • Haben Sie eine Startseite, die so aussieht:

<ul>
         <li><a href="http://10.0.0.100/">Website1</a></li>
         <li><a href="http://10.0.0.101/">Website2</a></li>
         <li><a href="http://10.0.0.102/">Website3</a></li>
</ul>

Eine andere (kompliziertere) Möglichkeit zur Implementierung wäre:

  1. Implementieren Sie auf Ihrem Computer einen eigenen DNS-Server, der beispielsweise für die .bibicomputerTLD maßgebend ist.

  2. In Ihrer bibicomputerDNS-Zone verweist website1.bibicomputer, website2.bibicomputer, usw. auf Ihre IP-Adresse.

  3. Bitten Sie Ihre Arbeitskollegen, Ihre IP-Adresse zu ihrer DNS-Liste hinzuzufügen (unter Linux: /etc/resolv.conf).

Aber ich wette, dass den IT-Leuten in Ihrem Unternehmen diese Lösung nicht gefallen wird.

verwandte Informationen