π Apache vs Nginx Webservers¶
Webservers zijn software die HTTP-verkeer afhandelt en websites beschikbaar maakt op het internet.
De twee populairste webservers op Linux zijn Apache en Nginx.
- Apache: Klassieke, modulaire webserver, zeer configureerbaar, goed voor dynamische content.
- Nginx: Lichtgewicht, event-driven, ideaal voor statische content en hoge load.
πΉ Belangrijkste verschillen¶
| Kenmerk | Apache | Nginx |
|---|---|---|
| Architectuur | Process/Thread-based | Event-driven, asynchroon |
| Performance | Goed bij lage tot middelmatige load | Uitstekend bij hoge load |
| Modules | Dynamisch via .so-modules |
Statistisch gecompileerd |
| Configuratie per site | .htaccess |
Geen .htaccess, centraal config |
| Dynamische content | PHP via mod_php | PHP via FPM |
πΉ Installatie op Ubuntu/Debian¶
Apache installeren¶
Nginx installeren¶
Controleren of de server draait¶
Apache:
Nginx:
Starten / stoppen / herstarten¶
Apache:
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
sudo systemctl reload apache2
Nginx:
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
πΉ Configuratiebestanden¶
Apache¶
- Hoofdconfig:
/etc/apache2/apache2.conf - Sites-enabled:
/etc/apache2/sites-enabled/ - Sites-available:
/etc/apache2/sites-available/ - Modules:
/etc/apache2/mods-enabled/ - Ports:
/etc/apache2/ports.conf - Extra config bestanden:
/etc/apache2/conf-available/
Nginx¶
- Hoofdconfig:
/etc/nginx/nginx.conf - Sites-enabled:
/etc/nginx/sites-enabled/ - Sites-available:
/etc/nginx/sites-available/ - Ports en upstream:
/etc/nginx/nginx.conf(server blokken) - Extra config bestanden:
/etc/nginx/conf.d/
πΉ Logs¶
Apache¶
- Access logs:
/var/log/apache2/access.log - Error logs:
/var/log/apache2/error.log
Nginx¶
- Access logs:
/var/log/nginx/access.log - Error logs:
/var/log/nginx/error.log
πΉ IP binding & Virtual Hosts¶
Soms wil je meerdere IPβs of poorten koppelen aan verschillende websites.
Apache¶
In /etc/apache2/ports.conf kun je extra Listen regels toevoegen:
Daarna geef je in de VirtualHost (VH) aan welk IP gebonden moet worden:
<VirtualHost 192.168.1.10:80>
ServerName site1.local
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost 192.168.1.11:8080>
ServerName site2.local
DocumentRoot /var/www/site2
</VirtualHost>
Nginx¶
In een serverblok kun je een specifiek IP en poort koppelen:
server {
listen 192.168.1.10:80;
server_name site1.local;
root /var/www/site1;
}
server {
listen 192.168.1.11:8080;
server_name site2.local;
root /var/www/site2;
}
π Tip: Als je alleen
listen 80;gebruikt, luistert de server op alle beschikbare IPβs.
πΉ Aanpassen van instellingen¶
Apache¶
Pas site-specifieke configs aan in: Modules inschakelen of uitschakelen: Na wijzigingen herstarten:Nginx¶
Pas site-specifieke configs aan in: Test configuratie: Herstart Nginx om wijzigingen toe te passen:πΉ Poorten aanpassen¶
- Apache: standaard 80 (HTTP) en 443 (HTTPS), te vinden in
/etc/apache2/ports.conf. - Nginx: standaard 80 en 443, te wijzigen in server blokken in
/etc/nginx/sites-available/default.
πΉ Best practices¶
- Gebruik
sites-available+sites-enabledvoor overzicht. - Test configuratie altijd eerst (
apache2ctl configtestofnginx -t). - Logrotatie inschakelen om logs beheersbaar te houden (
logrotate). - Gebruik HTTPS via Letβs Encrypt.
- Beperk toegestane modules in Apache voor betere performance.
- Voor hoge load: gebruik Nginx als reverse proxy voor Apache.