Zoeken op website

Creëer Apache-naamgebaseerde en IP-gebaseerde virtuele hosts in Linux


Virtuele hosting is een concept waarbij meerdere websites of domeinen op één server worden gehost, wat wordt gedaan om de overheadkosten en de exploitatiekosten van een bedrijf of organisatie te verminderen.

Apache-webserver vereenvoudigt het hosten van meerdere sites doordat systeembeheerders eenvoudig virtuele hosts voor elke website kunnen configureren. Virtuele hosting kan op IP-gebaseerd of op naam gebaseerd zijn.

In deze zelfstudie onderzoeken we hoe u virtuele hosting kunt instellen in op RHEL gebaseerde distributies zoals Fedora, CentOS Stream, Rocky Linux en Alma Linux gebruikt zowel IP-gebaseerde als naamgebaseerde virtuele hosts in Linux.

De concepten van Gedeelde webhosting en Reseller webhosting zijn voornamelijk gebaseerd op deze functie van Apache.

Soorten Apache virtuele hosting in Linux

Er zijn twee soorten Virtuele hosting beschikbaar met Apache.

Op naam gebaseerde virtuele hosting

Bij dit type hosting kunnen meerdere domeinen of websites op één server worden gehost met slechts één IP-adres. Simpel gezegd delen alle domeinen één IP-adres. Dit is het gemakkelijkste type virtuele hosting om te configureren, omdat u alleen maar de domeinnamen aan het IP-adres hoeft toe te wijzen en vervolgens de virtuele Apache-hosts voor elk van de domeinnamen hoeft te configureren.

IP-gebaseerde virtuele hosting

IP-gebaseerde virtuele hosting houdt in dat aan elk domein een uniek IP-adres wordt toegewezen. Deze IP-adressen kunnen aan de server worden gekoppeld met behulp van meerdere NIC-kaarten of een enkele NIC-kaart.

Omgeving testen

  • OSFedora 34
  • ToepassingApache-webserver
  • IP-adres192.168.2.105
  • IP-adres192.168.2.106
  • Domeinwww.mijndomein1.com
  • Domeinwww.mijndomein2.com

Hoe u op IP gebaseerde en op naam gebaseerde virtuele Apache-hosts kunt instellen

Voordat u aan de slag gaat, moet u ervoor zorgen dat de Apache-webserver op uw systeem is geïnstalleerd met behulp van de opdracht dnf, zoals weergegeven.

sudo dnf install httpd -y

Op naam gebaseerde virtuele hosting instellen

De eerste stap bij het opzetten van op naam gebaseerde virtuele hosting is het instellen van de domeinnaamresolutie in het bestand /etc/hosts. Voer daarom de volgende opdrachten uit als rootgebruiker om de domeinnaamvermeldingen toe te voegen die naar het IP-adres van de host verwijzen.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.105 www.mydomain2.com' >> /etc/hosts

De volgende stap is het maken van een map die de websitebestanden bevat. Daarom zullen we twee mappen maken voor de virtuele hosts in de Document Root, wat de map /var/www/html is in de Apache-configuratie.

sudo mkdir /var/www/html/mydomain1.com/
sudo mkdir /var/www/html/mydomain2.com/

De volgende stap is het wijzigen van het virtuele hostbestand dat Apache het IP-adres zal instrueren om te luisteren naar inkomende Apache-webserververzoeken voor alle domeinnamen. Open daarom het Apache-configuratiebestand met de teksteditor van uw voorkeur.

sudo vim /etc/httpd/conf/httpd.conf

Voeg de volgende codeblokken toe voor de twee virtuele hosts.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.105:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Sla de wijzigingen op en sluit af. Controleer vervolgens of de syntaxis in orde is en of er geen fouten zijn.

httpd -t

Vervolgens zullen we HTML-testpagina's maken voor elk van de domeinen en wat inhoud toevoegen om te bevestigen of alles goed werkt vanuit de browser.

Voor mijndomein1.com

Maak een index.html-bestand in de map mijndomein1.com.

sudo vim /var/www/html/mydomain1.com/index.html 

Plak de volgende regels.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain1.com.</h1>
  </body>
</html>

Sla de wijzigingen op en sluit het bestand af.

Voor mijndomein2.com

Maak een index.html-bestand in de map mijndomein2.com.

sudo vim /var/www/html/mydomain2.com/index.html 

Plak de volgende regels.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain2.com.</h1>
  </body>
</html>

Sla de wijzigingen op en sluit het bestand af.

Start nu de Apache-webserver en bevestig dat deze actief is.

sudo systemctl start httpd
sudo systemctl status httpd

Als u een firewall heeft ingeschakeld, staat u het HTTP- en HTTPS-verkeer toe (indien nodig).

sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

Test nu de domeinen vanuit een browser.

Installatie van IP-gebaseerde virtuele hosting Linux

Op IP gebaseerde virtuele hosting omvat, zoals de naam al doet vermoeden, meerdere IP-adressen die aan uw Linux-server zijn toegewezen. In de meeste gevallen zijn er twee of meer NIC-kaarten op uw systeem aangesloten om meerdere IP-adressen te bieden.

Het doel van IP-gebaseerde virtuele hosting is om elk domein toe te wijzen aan een uniek IP-adres dat niet door een ander domein zal worden gebruikt.

Dit is ideaal voor situaties waarin u websites heeft die zijn gecodeerd met een SSL-certificaat (mod_ssl) of die op verschillende poorten draaien. In onze opstelling hebben we twee NIC-adapters.

Om de IP-configuratie op uw systeem te bekijken, voert u de opdracht ifconfig of ip a uit.

ifconfig
OR
ip addr

Onze server heeft twee IP-adressen, elk toegewezen aan één NIC. Het IP-adres 192.168.2.106 is toegewezen aan ens160 en 192.168.2.105 is toegewezen aan ens224.

Laten we nogmaals het bestand httpd.conf configureren.

sudo vim /etc/httpd/conf/httpd.conf

Maak virtuele hosts voor beide domeinen, zoals weergegeven. Zorg ervoor dat elk IP-adres is toegewezen aan de respectieve virtuele hostconfiguratie.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.106:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Sla het configuratiebestand op en sluit het af. Wijzig vervolgens het bestand /etc/hosts zoals weergegeven.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.106 www.mydomain2.com'>> /etc/hosts

Bevestig de invoer:

cat /etc/hosts

192.168.2.105 www.mydomain1.com
192.168.2.106 www.mydomain2.com

Start vervolgens de Apache-webserver opnieuw op zodat de wijzigingen van kracht worden.

sudo systemctl restart httpd

Test ten slotte uw IP-gebaseerde virtuele hostingconfiguratie door de URL's te openen zoals weergegeven.

http://192.168.2.105
http://192.168.2.106

Deze test bevestigt dat de op IP gebaseerde virtuele hosting precies werkt zoals verwacht!

Conclusie

En dat was het voor deze lezing. We hopen dat u beide soorten virtuele hosting naadloos en zonder veel problemen kunt configureren. Uw feedback op deze handleiding wordt zeer op prijs gesteld.