Terug naar blog

Apache Virtual Hosts instellen op Ubuntu 20.04

Apache Virtual Hosts instellen op Ubuntu 20.04

Apache is momenteel de meest gebruikte webserver ter wereld. Het is open-source software die wordt onderhouden door The Apache Software Foundation. Vanaf september 2020 bedient het naar schatting 36% van al het websiteverkeer ter wereld. Ontwikkelaars zijn er dol op vanwege de snelheid, veiligheid, betrouwbaarheid en robuustheid. Dankzij het aanpassingsgemak kan het aan de behoeften van veel omgevingen voldoen door extensies en modules te installeren.

Apache wordt geleverd met een matchingsysteem dat u kunt gebruiken om meerdere domeinen of sites te hosten met behulp van een enkele Apache-serverinstallatie die op één IP-adres is blootgesteld. De domeinen of sites worden ingesteld in een van de Apache-configuratiebestanden die zijn gedefinieerd als virtuele hosts.

Elk domein heeft één virtuele hostdefinitie met een specifieke map waarnaar het verwijst. Wanneer een gebruiker een domein bezoekt, onderzoekt de server elke overeenkomende virtuele host en selecteert welke moet worden gebruikt om aan het verzoek van de bezoeker te voldoen, afhankelijk van de hostnaam die is ingevoerd. Als er geen overeenkomende hostnaam wordt gevonden, gebruikt de server de eerste gedefinieerde virtuele host in het conf-bestand als fallback. De bezoeker krijgt toegang tot de opgevraagde webpagina zonder te weten dat dezelfde server ook andere sites bedient. Afhankelijk van de bronnen die u op uw server heeft en hoeveel verkeer deze aankan, kunt u zoveel domeinen hosten als u wilt.

In deze handleiding leiden we u door het instellen van virtuele hosts op de Ubuntu 20.04 server.

Eerst en vooral

Om de handleiding te kunnen volgen, moet u beschikken over een installatie van Ubuntu 20.04. U moet ook een niet-rootgebruiker aanmaken en hiermee inloggen.

Voor de stappen in deze handleiding moet u ook Apache hebben geïnstalleerd. Als u dit nog niet heeft gedaan, kunt u dit installeren met de onderstaande opdrachten. U kunt onze LAMP Stack setup – Linux Apache MySQL PHP handleiding volgen voor een meer gedetailleerde installatiegids.

U moet gratis of betaalde domeinnamen hebben geregistreerd bij een domeinregistrar van uw keuze. Zorg ervoor dat de domeinen naar uw server verwijzen door de DNS-records te configureren. U kunt echter nog steeds onze configuraties gebruiken om de stappen in deze handleiding te volgen. We gebruiken example.dev og mydomain.com voor deze handleiding. Het staat u vrij deze te vervangen door uw eigen domeinen. Als u besluit de testdomeinen te gebruiken, moeten de hosts-bestanden op Apache worden bewerkt om de domeinen te verwerken. We zullen later in de handleiding bespreken hoe u dit doet.

Stap 1 – De websitemappen instellen

Dit zijn de mappen met de gegevens van de site waartoe uw websitebezoekers toegang zullen hebben. De document root van Apache die toegankelijk is vanaf internet bevindt zich meestal in /var/www. Hier maken we de mappen aan voor de afzonderlijke domeinen die we willen hosten. In elk van de mappen voegen we de map public_html toe om de daadwerkelijke websitebestanden te bevatten. De virtuele host verwijst naar de map public_html. Dit geeft u flexibiliteit, omdat u cruciale websitebestanden buiten de public_html kunt houden en alleen openbare bestanden daarin kunt plaatsen.

Voer vervolgens de onderstaande opdrachten in om de mappen aan te maken. Denk er altijd aan om de testdomeinen te vervangen door uw daadwerkelijke domeinen voor volgende configuraties:

Stap 2 – Lees- en schrijfrechten wijzigen

De vorige opdrachten hebben de mappenstructuur gemaakt, maar het eigendom bij de root-gebruiker gelaten. We willen dat onze niet-rootgebruiker volledige lees- en schrijfrechten heeft voor de mappen. We willen ook dat het algemene web leesrechten heeft.

Wijzig eerst het eigendom naar de niet-rootgebruiker door de volgende opdracht in te voeren:

De $USER is een variabele die de inloggegevens van de momenteel ingelogde gebruiker overneemt. De normale gebruiker is nu eigenaar van de public_html. Vervolgens moet u leesrechten verlenen aan het algemene web. De volgende opdracht geeft toestemming voor alle bestanden in de map, zodat de webpagina's correct worden weergegeven:

Door de vorige drie opdrachten uit te voeren, kan uw website nu inhoud aanbieden. Bovendien kan uw gebruiker ook inhoud maken die in de specifieke mappen wordt aangeboden. Hier vindt u meer informatie over Ubuntu-rechten.

Stap 3 – Demopagina's maken in de mappen voor elke Virtual Host

Nu de mapstructuur op orde is, is het tijd om te gaan scripten. We maken gebruik van HTML en de nano-teksteditor om enkele basiswebpagina's te maken. Voer de volgende opdracht uit om nano te openen en een index.html-bestand te maken in de map voor het eerste domein:

Plaats in de editor de volgende voorbeeldcode die wordt weergegeven wanneer we het domein bezoeken:

Zodra u de bovenstaande regels hebt geplakt, drukt u op “!wq” om het bestand op te slaan en te sluiten.

Maak de index.html-pagina voor het tweede domein met de nano-editor door de volgende opdracht in te voeren:

Plak vervolgens de volgende HTML-code in de editor, sla deze op en sluit af:

 

Nu hebt u de pagina's om de twee virtual hosts te testen die we in de volgende stap gaan maken.

Stap 4 – Virtual Host-bestanden maken voor de domeinnamen

Virtual host-bestanden bevatten configuraties voor elke virtual host. Ze bepalen hoe een domeinnaam wordt bediend. Een nieuwe installatie van Apache wordt geleverd met een standaard virtual host-bestand genaamd 000-default.conf dat we kunnen gebruiken en aanpassen aan onze domeinen. Zoals u kunt zien, eindigt het op een .conf-extensie, wat Ubuntu verwacht voor configuratiebestanden.

Apache-configuratiebestanden bevinden zich in de map /etc/apache2/sites-available. Daar slaan we onze virtual host-bestanden op. We kunnen het standaard conf-bestand kopiëren en bewerken waar nodig.

  • Maak het eerste virtual host-bestand voor het domein example.dev

Voer de volgende opdracht uit om example.dev.conf te maken door het standaard conf-bestand te kopiëren:

Open vervolgens het gemaakte bestand met de nano-editor met sudo-privileges met behulp van het volgende commando:

Het standaard conf-bestand ziet eruit zoals de onderstaande schermafbeelding. De opmerkingen zijn bedoeld om u te begeleiden. We kunnen ze verwijderen en alleen het schone bestand met de daadwerkelijke configuratieregels overlaten:

default configuration

U moet dit bestand aanpassen voor uw domeinnaam en het mappad waar u de websitebestanden hebt opgeslagen. Daarnaast zullen we verschillende richtlijnen in het bestand bijwerken en toevoegen. Het bevat al een ServerAdmin-richtlijn, die het e-mailadres bevat waarop de serverbeheerder e-mails zal ontvangen. Het heeft ook een DocumentRoot-richtlijn, die verwijst naar de map waar u de websitebestanden hebt opgeslagen.

We moeten twee nieuwe richtlijnen toevoegen: ServerName en ServerAlias. ServerName stelt de basisdomeinnaam in. Dit is waar u uw domein invult. ServerAlias definieert andere namen dat Apache moet matchen alsof ze de basisdomeinnaam zijn. Hiermee kunt u hosts zoals www matchen.

Werk het bestand bij zodat het eruitziet zoals hieronder weergegeven:

Werk daarna uw domeinen en e-mail op de juiste manier bij. Druk daarna op CTRL + O en ENTER om het bestand op te slaan. Om de editor af te sluiten, drukt u op CTRL + X.

  • Maak het eerste virtual host-bestand voor het domein mydomain.com

We kunnen gewoon de virtual host voor het eerste domein kopiëren en deze waar nodig bijwerken voor het tweede domein. Gebruik het volgende commando om het bestand te kopiëren:

Open het vervolgens in de nano-editor met behulp van het commando:

Zoek de richtlijnen en werk ze op de juiste manier bij, zodat het bestand eruitziet zoals hieronder weergegeven:

Sla het bestand op en sluit de editor af als u klaar bent.

Stap 5 – De Virtual Host-bestanden inschakelen

In stap vier hebben we de virtual host-bestanden gemaakt. Ze zijn echter pas functioneel als u ze inschakelt. Apache heeft een tool genaamd a2ensite die we zullen gebruiken om de virtual hosts in te schakelen.

Voer de volgende twee commando's in om de virtual hosts in te schakelen:

De uitvoer van de bovenstaande commando's is zoals hieronder weergegeven:

Apache еnable configuration

Vervolgens moet u het standaardconfiguratiebestand uitschakelen. We gebruiken de Apache-tool a2dissite om sites uit te schakelen. Voer het volgende commando in:

Zoals te zien is in de uitvoer, moet u Apache herstarten om de configuraties door te voeren. Gebruik het volgende commando:

Controleer vervolgens de status van Apache met de volgende opdracht:

De uitvoer laat zien dat uw server actief is en dat deze de twee websites kan bedienen.

Apache 2 status

Stap 6 – Lokale hosts aanpassen met voorbeelddomeinen

Als u geen echt domein had geregistreerd maar in plaats daarvan testdomeinen gebruikte, moet u uw lokale hostbestanden bijwerken. Ze moeten het verkeer onderscheppen en naar uw websitedirectory leiden wanneer u naar een van de domeinen navigeert die in de virtual host-bestanden zijn ingesteld. Houd er rekening mee dat dit alleen werkt op uw lokale computer. Als uw lokale computer op een Windows-besturingssysteem draait, volg dan de instructies voor het instellen van hosts via deze link.

Als u een Mac- of Linux-machine gebruikt, bevindt het hosts-bestand zich in de map /etc. We zullen een nano-editor gebruiken om onze testdomeinen te openen en toe te voegen. Zoek eerst het IP-adres van uw VPS door de volgende opdracht in te voeren:

Voer de volgende opdracht in om het bestand te openen en bij te werken met het IP-adres van uw server:

Sla vervolgens het bestand op en sluit het. Telkens wanneer u een domeinnaam in uw browser invoert, wordt eerst het hostbestand gecontroleerd. Als de domeinnaam wordt gevonden, wordt het verkeer naar het opgegeven IP-adres geleid. Als deze niet wordt gevonden, wordt het DNS-systeem gebruikt voor wereldwijde omleiding. Voor onze testdomeinen wordt het verkeer naar het opgegeven IP-adres geleid.

Stap 7 – Test uw virtuele hosts

Nu de domeinnamen zijn ingesteld, kunt u testen of ze werken door ze te controleren in de browser/terminal:

De uitvoer zou er ongeveer zo uit moeten zien:
curl example.dev

Apache curl mydomain.com

Gefeliciteerd! U hebt met succes twee websites geconfigureerd om op één server te draaien.

Conclusie

In deze handleiding hebt u geleerd hoe u uw Apache-server configureert om meer dan één website te bedienen. Als u meer websites wilt toevoegen, kunt u dit doen door de stappen te volgen en virtuele hosts in te stellen. Apache kan zoveel domeinen aan als u wilt, zolang de bronnen van uw server dit aankunnen.

Veel plezier met computeren!

author

Akshay Nagpal

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.