Ein Webserver stellt Webseiten, APIs oder Anwendungen bereit und liefert HTTP- bzw. HTTPS-Inhalte an Clients wie Browser oder Apps aus.
Die beiden bekanntesten Webserver sind:
Beide sind weit verbreitet, aber unterschiedlich aufgebaut und eingesetzt.
Apache ist modular aufgebaut und gilt als sehr flexibel.
Ideal, wenn viele Funktionen gebraucht werden.
Module (Beispiele):
mod_ssl – TLS/HTTPSmod_rewrite – URL-Umschreibungenmod_php – PHP direkt ausführbar/etc/apache2/ /var/www/html/
Konfigurationen:
/etc/apache2/sites-available/*.confa2ensite sitename.conf systemctl reload apache2
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
</VirtualHost>
Nginx ist moderner, schlanker und extrem performant.
Er ist besonders gut geeignet als:
/etc/nginx/ /var/www/html/
Aktivierung von Sites:
ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/ nginx -t systemctl reload nginx
server {
listen 80;
server_name example.com;
root /var/www/example;
location / {
try_files $uri $uri/ =404;
}
}
| Kategorie | Apache | Nginx |
| —————— | ——————————- | ——————————- |
| Architektur | prozess-/threadbasiert | event-driven |
| Geschwindigkeit | mittel | sehr hoch |
| Ressourcenbedarf | höher | sehr gering |
| PHP-UnterstĂĽtzung | direkt via mod_php | via PHP-FPM (FastCGI) |
| .htaccess | unterstĂĽtzt | nicht unterstĂĽtzt |
| guter Einsatzort | klassische Webanwendungen | Reverse Proxy, moderne Setups |
Nginx vor einem Backend (z. B. Docker-Service):
location /api/ {
proxy_pass http://localhost:8080/;
}
Beispiel (Nginx):
server {
listen 443 ssl;
ssl_certificate /etc/ssl/certs/fullchain.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
}
Apache:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/fullchain.pem
SSLCertificateKeyFile /etc/ssl/private/key.pem
</VirtualHost>
Apache:
/var/log/apache2/access.log /var/log/apache2/error.log
Nginx:
/var/log/nginx/access.log /var/log/nginx/error.log
Nginx ist in Docker-Umgebungen extrem beliebt wegen:
Apache wird oft in LAMP-Stacks genutzt.
Browser → HTTP/HTTPS → Webserver (Apache/Nginx) → Anwendung