- 1 1. Introductie
 - 2 2. Installatie en initiële configuratie van Ubuntu
 - 3 3. Apache installeren en configureren
 - 4 4. Virtuele hosts configureren (Meerdere websites beheren)
- 4.1 Wat is een virtuele host?
 - 4.2 Stappen om virtuele hosts te configureren
- 4.2.1 1. Maak mappen voor elke site
 - 4.2.2 2. Verander het eigendom van de mappen
 - 4.2.3 3. Maak een test-HTML-bestand
 - 4.2.4 4. Maak configuratiebestanden voor virtuele hosts
 - 4.2.5 Configuratie voor example.com
 - 4.2.6 Configuratie voor test.com
 - 4.2.7 5. Virtuele hosts inschakelen
 - 4.2.8 Apache-configuratie testen
 
 - 4.3 6. Lokaal testen (het hosts-bestand bewerken)
 
 - 5 5. SSL/TLS inschakelen (HTTPS)
 - 6 6. Webserverbeveiliging verbeteren
 - 7 7. Prestatie‑optimalisatie
 - 8 8. Probleemoplossing
 - 9 9. Samenvatting
- 9.1 Wat je hebt geleerd
 - 9.2 Volgende stappen
 - 9.3 Veelgestelde vragen (FAQ)
- 9.3.1 V1: Moet ik Nginx of Apache kiezen voor mijn webserver?
 - 9.3.2 V2: Kunnen SSL‑certificaten automatisch worden verlengd?
 - 9.3.3 V3: Hoe kan ik de beveiliging van mijn server verder verbeteren?
 - 9.3.4 V4: Hoe kan ik de prestaties van Apache verbeteren?
 - 9.3.5 V5: Waarom krijg ik een “403 Forbidden” fout?
 
 - 9.4 Slotgedachten
 
 
1. Introductie
Wat is een Ubuntu-webserver?
Een webserver is een systeem dat websites via internet levert. Populaire webserversoftware omvat Apache, Nginx en LiteSpeed, maar het meest gebruikte op Ubuntu is Apache.
 Ubuntu is lichtgewicht, zeer stabiel en open-source, waardoor het een populaire keuze is voor zowel particulieren als bedrijven. Het is bijzonder geschikt voor het bouwen van een LAMP‑stack (Linux, Apache, MySQL/MariaDB, PHP), die vaak wordt gebruikt voor het draaien van websites en webapplicaties.
Voor wie is deze gids bedoeld?
Dit artikel is bedoeld voor beginners die voor de eerste keer een webserver opzetten. Het biedt een stapsgewijze handleiding over hoe je Apache op Ubuntu installeert, virtuele hosts configureert, SSL‑certificaten instelt, de prestaties optimaliseert en de beveiliging verbetert.
Wat je zult leren
- Hoe je een webserver op Ubuntu opzet (Apache installeren en configureren)
 - Virtuele hosts instellen om meerdere websites te beheren
 - Gratis SSL‑certificaten installeren met Let’s Encrypt
 - Beveiliging verbeteren en serverprestaties optimaliseren
 - Veelvoorkomende problemen met webservers oplossen
 
2. Installatie en initiële configuratie van Ubuntu
Systeemvereisten
Om Ubuntu als webserver te draaien, worden de volgende minimale systeemvereisten aanbevolen:
| Component | Minimum Requirements | Recommended Requirements | 
|---|---|---|
| OS | Ubuntu 22.04 LTS | Ubuntu 22.04 LTS | 
| CPU | 1GHz or higher | 2GHz or higher | 
| Memory | 512MB | 2GB or higher | 
| Storage | 10GB or more | 20GB or more | 
| Network | Internet connection | High-speed connection recommended | 
Ubuntu downloaden en installeren
Je kunt Ubuntu downloaden van de officiële website: https://ubuntu.com/download/server. Zodra je het ISO‑bestand hebt, kun je het installeren met VirtualBox of VMware voor een virtuele omgeving, of op een dedicated server of VPS.
Installatiestappen:
- Maak installatiemedium
 
- Gebruik een USB‑stick (met tools zoals Rufus)
 - Mount het ISO‑bestand in een virtuele machine
 
- Volg de installatiewizard
 
- Stel de taal in op Engels
 - Controleer de netwerkverbinding
 - Configureer gebruikersnaam en wachtwoord
 - Installeer SSH‑server (optioneel, kan later worden gedaan)
 
- Voltooi de OS‑configuratie en herstart
 - Log in en begin met de initiële configuratie
 
Basis initiële configuratie
Na de installatie voer je de volgende initiële configuratiestappen uit:
- Systeempakketten bijwerken
 
sudo apt update && sudo apt upgrade -y
→ Dit zorgt ervoor dat beveiligingspatches en software‑updates worden toegepast.
- Stel de tijdzone in
 
sudo timedatectl set-timezone America/New_York
→ Stel de tijdzone in zodat deze overeenkomt met de locatie van je server.
- Schakel de firewall in
 
sudo ufw enable
→ Dit beschermt de server tegen ongeautoriseerde toegang.
- Configureer SSH (voor beheer op afstand)
 
- Controleer of SSH is ingeschakeld: 
sudo systemctl status ssh - Indien niet ingeschakeld, start het: 
sudo systemctl enable --now ssh 
Zodra deze initiële instellingen zijn toegepast, is de Ubuntu‑server klaar om als webserver te worden geconfigureerd.
3. Apache installeren en configureren
Wat is Apache?
Apache (officieel Apache HTTP Server) is een open‑source webserversoftware die bekend staat om zijn stabiliteit, schaalbaarheid en beveiliging. Ongeveer 30 % van de webservers wereldwijd gebruiken Apache.
Belangrijkste kenmerken:
- Gratis en open-source
 - Modulaire architectuur voor eenvoudige aanpassing
 - Ondersteunt SSL/TLS voor beveiligde HTTPS‑verbindingen
 - Ondersteuning voor virtuele hosts om meerdere websites te beheren
 
Apache installeren
Op Ubuntu kan Apache eenvoudig worden geïnstalleerd met de apt‑pakketbeheerder.
Apache installeren
Voer de volgende commando’s uit om Apache te installeren:
sudo apt update
sudo apt install apache2 -y
Installatie verifiëren
Controleer na de installatie de Apache‑versie:
apache2 -v
Voorbeeldoutput:
Server version: Apache/2.4.52 (Ubuntu)
Server built:   2023-07-01T12:34:56
Als je dit bericht ziet, is Apache succesvol geïnstalleerd.
Apache starten, stoppen en herstarten
Apache wordt beheerd met het systemctl‑commando.
Apache starten
sudo systemctl start apache2
Apache inschakelen om bij opstarten te starten
sudo systemctl enable apache2
Apache‑status controleren
Om te bevestigen dat Apache draait:
sudo systemctl status apache2
Als Apache draait, zie je een status “active (running)”.
Apache herstarten of stoppen
Als je Apache moet herstarten na het aanbrengen van configuratiewijzigingen:
sudo systemctl restart apache2
Om Apache tijdelijk te stoppen:
sudo systemctl stop apache2
4. Virtuele hosts configureren (Meerdere websites beheren)
Wat is een virtuele host?
Een virtuele host is een functie die een enkele Apache-server in staat stelt meerdere domeinen (of subdomeinen) te hosten.
 Bijvoorbeeld, een enkele server kan zowel example.com als test.com hosten.
Er zijn twee soorten virtuele hosts:
- Naamgebaseerde virtuele host
 
- Hostt meerdere sites op hetzelfde IP-adres
 - De meest voorkomende manier om meerdere websites te beheren
 
- IP-gebaseerde virtuele host
 
- Elke site krijgt een anders IP-adres toegewezen
 - Vereist meerdere netwerkinterfaces op de server
 
Meestal wordt naamgebaseerde virtuele hosting gebruikt.
Stappen om virtuele hosts te configureren
1. Maak mappen voor elke site
Elke virtuele host vereist een dedicatieve map om de websitebestanden op te slaan.
sudo mkdir -p /var/www/example.com/public_html
sudo mkdir -p /var/www/test.com/public_html
2. Verander het eigendom van de mappen
Om ervoor te zorgen dat Apache toegang heeft tot de bestanden, stel je de eigenaar in op www-data.
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/test.com/public_html
3. Maak een test-HTML-bestand
Voor verificatie, maak een index.html-bestand voor elke site.
echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/public_html/index.html
echo "<h1>Welcome to test.com</h1>" | sudo tee /var/www/test.com/public_html/index.html
4. Maak configuratiebestanden voor virtuele hosts
Configuraties voor virtuele hosts worden opgeslagen in /etc/apache2/sites-available/.
Configuratie voor example.com
Maak en bewerk een configuratiebestand:
sudo nano /etc/apache2/sites-available/example.com.conf
Voeg de volgende configuratie toe:
<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    <Directory /var/www/example.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
Configuratie voor test.com
sudo nano /etc/apache2/sites-available/test.com.conf
Voeg de volgende inhoud toe:
<VirtualHost *:80>
    ServerAdmin admin@test.com
    ServerName test.com
    ServerAlias www.test.com
    DocumentRoot /var/www/test.com/public_html
    <Directory /var/www/test.com/public_html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/test.com_error.log
    CustomLog ${APACHE_LOG_DIR}/test.com_access.log combined
</VirtualHost>
5. Virtuele hosts inschakelen
Zodra de configuratiebestanden zijn aangemaakt, schakel je ze in met a2ensite.
sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
Apache-configuratie testen
Controleer op syntaxisfouten:
sudo apachectl configtest
Als de uitvoer is:
Syntax OK
Herstart Apache om de wijzigingen toe te passen:
sudo systemctl restart apache2
6. Lokaal testen (het hosts-bestand bewerken)
Om te verifiëren dat de virtuele hosts correct werken, bewerk je je lokale hosts-bestand.
sudo nano /etc/hosts
Voeg de volgende regels toe:
127.0.0.1 example.com
127.0.0.1 test.com
Na het opslaan, open een browser en voer in:
http://example.com/
Als je “Welcome to example.com” ziet, is de configuratie geslaagd.
5. SSL/TLS inschakelen (HTTPS)
Wat is SSL/TLS?
SSL (Secure Sockets Layer) en TLS (Transport Layer Security) zijn encryptietechnologieën die communicatie via internet beveiligen.
Voordelen van SSL/TLS:
✅ Versleutelt communicatie (vermindert risico’s op diefstal en manipulatie van gegevens)
 ✅ Verhoogt SEO-ranking (Google geeft HTTPS-sites prioriteit in zoekresultaten)
 ✅ Voorkomt browserwaarschuwingen (HTTP-sites kunnen “Niet veilig” tonen)
 ✅ Beveiligt online betalingen en inloggegevens
Let’s Encrypt gebruiken voor gratis SSL
Let’s Encrypt is een certificeringsautoriteit die gratis SSL-certificaten levert. We gebruiken certbot om het eenvoudig in te stellen.
Certbot installeren
sudo apt update
sudo apt install certbot python3-certbot-apache -y
SSL automatisch configureren voor Apache
sudo certbot --apache -d example.com -d www.example.com
Verifieer dat HTTPS werkt
Na de installatie, controleer:
https://example.com/
Als je een slot‑icoon in de browser ziet, werkt SSL.
6. Webserverbeveiliging verbeteren
Een firewall instellen (UFW)
Firewall inschakelen en benodigde poorten openen
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp   # SSH
sudo ufw allow 80/tcp   # HTTP
sudo ufw allow 443/tcp  # HTTPS
sudo ufw enable
SSH beveiligen
SSH‑poort wijzigen
sudo nano /etc/ssh/sshd_config
Wijzig:
Port 2222  # Change 22 to a custom port
SSH herstarten:
sudo systemctl restart ssh
7. Prestatie‑optimalisatie
Apache afstemmen
Standaard is Apache niet altijd geoptimaliseerd voor het efficiënt afhandelen van veel verkeer. Je kunt de volgende instellingen aanpassen om de prestaties te verbeteren.
MPM optimaliseren (Multi‑Processing Module)
MPM (Multi‑Processing Module) bepaalt hoe Apache verzoeken verwerkt.
Controleer de huidige MPM‑configuratie:
apachectl -M | grep mpm
Voorbeeldoutput:
mpm_prefork_module (shared)
Als je mpm_prefork_module ziet, overweeg dan om over te schakelen naar mpm_event voor betere prestaties.
Overschakelen naar MPM Event:
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo systemctl restart apache2
KeepAlive inschakelen
KeepAlive maakt persistente verbindingen mogelijk, waardoor het aantal nieuwe verzoeken wordt verminderd.
Bewerk het Apache‑configuratiebestand:
sudo nano /etc/apache2/apache2.conf
Voeg de volgende instellingen toe of wijzig ze:
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
Apache herstarten:
sudo systemctl restart apache2
Caching benutten
Het gebruik van browser‑ en server‑caching vermindert overbodige verzoeken, waardoor de responstijden verbeteren.
mod_expires inschakelen voor browser‑caching
sudo a2enmod expires
sudo systemctl restart apache2
Bewerk je virtual‑host‑configuratiebestand:
sudo nano /etc/apache2/sites-available/example.com.conf
Voeg toe:
<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
</IfModule>
Apache herstarten:
sudo systemctl restart apache2
Gzip‑compressie inschakelen
Schakel compressie in om bestandsgroottes te verkleinen en de laadsnelheid te verbeteren.
mod_deflate inschakelen
sudo a2enmod deflate
sudo systemctl restart apache2
Bewerk het virtual‑host‑configuratiebestand:
sudo nano /etc/apache2/sites-available/example.com.conf
Voeg toe:
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
Apache herstarten:
sudo systemctl restart apache2
Resources beperken
Om overmatig gebruik van bronnen te voorkomen, beperk je het aantal verbindingen per IP.
mod_ratelimit inschakelen
sudo a2enmod ratelimit
sudo systemctl restart apache2
Bewerk het virtual‑host configuratiebestand:
sudo nano /etc/apache2/sites-available/example.com.conf
Voeg toe:
<Location />
    SetOutputFilter RATE_LIMIT
    SetEnv rate-limit 200
</Location>
Herstart Apache:
sudo systemctl restart apache2
8. Probleemoplossing
Apache start niet of stopt onverwacht
Controleer Apache-status
sudo systemctl status apache2
Als de uitvoer bevat:
Active: failed
Dan is er een fout opgetreden.
Controleer foutlogboeken
sudo journalctl -xe
sudo tail -f /var/log/apache2/error.log
Controleer poortconflicten
sudo netstat -tulnp | grep ':80'
Of:
sudo lsof -i:80
SSL‑certificaatproblemen
SSL‑certificaat verlopen
sudo certbot renew --force-renewal
Apache SSL‑configuratiefout
Bewerk het Apache SSL‑configuratiebestand:
sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf
Verifieer:
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Herstart Apache:
sudo systemctl restart apache2
Website laadt niet (403, 404, 500 fouten)
403 Verboden
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com/public_html
404 Niet gevonden
Controleer de virtual‑host configuratie:
DocumentRoot /var/www/example.com/public_html
Schakel mod_rewrite in indien nodig:
sudo a2enmod rewrite
sudo systemctl restart apache2
500 Interne serverfout
Controleer foutlogboeken:
sudo tail -f /var/log/apache2/error.log
Probeer .htaccess te hernoemen:
mv /var/www/example.com/public_html/.htaccess /var/www/example.com/public_html/.htaccess.bak
9. Samenvatting
Wat je hebt geleerd
Laten we de belangrijkste onderwerpen die in deze gids behandeld zijn, doornemen.
| Section | Key Points | 
|---|---|
| 1. Introduction | Overview of Ubuntu Web Server and the purpose of this guide | 
| 2. Installing and Initial Setup of Ubuntu | Setting up Ubuntu, updating packages, and configuring the firewall | 
| 3. Installing and Configuring Apache | Installing Apache, starting the service, and verifying functionality | 
| 4. Configuring Virtual Hosts | Hosting multiple websites on a single Apache server | 
| 5. Enabling SSL/TLS | Using Let’s Encrypt for HTTPS setup | 
| 6. Enhancing Web Server Security | Firewall setup, SSH security, and Apache hardening | 
| 7. Performance Optimization | Using caching, compression, and tuning Apache settings | 
| 8. Troubleshooting | Fixing Apache errors, SSL issues, and common website errors | 
Volgende stappen
Nu je Ubuntu‑webserver operationeel is, overweeg dan om meer geavanceerde onderwerpen te leren om de mogelijkheden van je server uit te breiden:
✅ WordPress of PHP‑toepassingen implementeren
 ✅ Een databaseserver opzetten (MySQL / MariaDB)
 ✅ Nginx configureren als reverse proxy voor Apache
 ✅ Auto‑scaling implementeren met cloudplatformen (AWS, GCP, Azure)
 ✅ Geavanceerde logging en monitoring (Fail2Ban, Logwatch, Prometheus)
Veelgestelde vragen (FAQ)
V1: Moet ik Nginx of Apache kiezen voor mijn webserver?
A1: Als je website voornamelijk statische inhoud levert, is Nginx aanbevolen. Als je dynamische inhoud (zoals PHP) nodig hebt, is Apache een betere keuze. Je kunt Nginx ook als reverse proxy voor Apache gebruiken.
V2: Kunnen SSL‑certificaten automatisch worden verlengd?
A2: Ja, Certbot ondersteunt automatische vernieuwing. Je kunt de vernieuwingstatus controleren met:
sudo certbot renew --dry-run
Voor volledige automatische vernieuwing wordt aanbevolen een cron‑taak in te stellen.
V3: Hoe kan ik de beveiliging van mijn server verder verbeteren?
A3: Implementeer Fail2Ban om brute‑force‑aanvallen te voorkomen, verberg Apache‑versiedetails, schakel ongebruikte modules uit en handhaaf sterke SSH‑beveiligingspraktijken.
V4: Hoe kan ik de prestaties van Apache verbeteren?
A4: Schakel over naar MPM Event, schakel caching (mod_cache) in, gebruik gzip‑compressie (mod_deflate) en optimaliseer de KeepAlive‑instellingen.
V5: Waarom krijg ik een “403 Forbidden” fout?
A5: Zorg ervoor dat de eigendom van de map is ingesteld op www-data en pas de bestandsrechten aan:
sudo chown -R www-data:www-data /var/www/example.com/public_html
sudo chmod -R 755 /var/www/example.com/public_html
Slotgedachten
Het opzetten van een Ubuntu‑webserver omvat meerdere stappen, van installatie en configuratie tot optimalisatie en probleemoplossing. Zodra je het proces begrijpt, kun je een krachtige webhostingomgeving bouwen en beheren.
🚀 Volg deze gids om een veilige, snelle en betrouwbare webserver te maken, en blijf je vaardigheden als serverbeheerder verbeteren! 🚀

 

![Oorzaken en Oplossingen voor het niet kunnen invoeren van een wachtwoord of inloggen op Ubuntu [Complete Gids voor Beginners]](https://www.linux.digibeatrix.com/wp-content/uploads/2025/01/222e1410df4982d8e85d09bb3e3389af-375x214.webp)
