Netzwerk 14.02.2026 13 Min.

Linux-Webserver: Apache, Nginx & die Kommandozeile

Wie funktioniert ein Webserver unter Linux? Apache vs. Nginx, die wichtigsten Befehle und Konfigurationen — praxisnah für Einsteiger.

Felix Burwitz

Felix Burwitz

IT-Systemelektroniker & Webentwickler

Warum Linux den Server-Markt dominiert

Über 96 % aller Webserver weltweit laufen auf Linux. Warum? Open Source, extrem stabil, minimal im Ressourcenverbrauch und perfekt für Serverdienste optimiert. Enterprise-Distributionen wie Ubuntu Server, Debian und AlmaLinux laufen monatelang ohne Neustart.

Wenn Sie eine Website unter Managed Hosting betreiben, arbeitet im Hintergrund fast immer ein Linux-Server. Dieser Artikel zeigt, was drin steckt.

Apache vs. Nginx: Die zwei Platzhirsche

Apache HTTP Server

Seit 1995. Prozess-basiert (prefork) oder Thread-basiert (worker/event). Extrem konfigurierbar.

+ .htaccess für Verzeichnis-Konfiguration

+ Riesiges Modul-Ökosystem (mod_rewrite, mod_php)

+ Perfekt für Shared Hosting

− Höherer RAM-Verbrauch pro Verbindung

Nginx

Seit 2004. Event-driven, asynchron, non-blocking. Für hohe Concurrency gebaut.

+ Extrem performant bei statischen Dateien

+ Hervorragender Reverse Proxy / Load Balancer

+ Niedriger RAM-Verbrauch bei vielen Verbindungen

− Keine .htaccess (nur zentrale Config)

In der Praxis oft als Combo: Nginx als Reverse Proxy vor Apache oder einem Application Server (PHP-FPM, Node.js, Python).

Linux-Grundlagen: Die wichtigsten Befehle

Die Kommandozeile (Shell, meist Bash) ist das Hauptwerkzeug auf einem Linux-Server. Hier die Befehle, die Sie am häufigsten brauchen:

Dateisystem

ls -laDateien auflisten (inkl. versteckter)
cd /var/www/htmlVerzeichnis wechseln
cp -r src/ dest/Dateien/Ordner kopieren
mv alt.txt neu.txtUmbenennen / Verschieben
rm -rf ordner/Löschen (Vorsicht!)
chmod 755 dateiBerechtigungen setzen
chown www-data:www-data .Besitzer ändern

Dienste verwalten (systemd)

systemctl status nginxStatus eines Dienstes prüfen
systemctl restart apache2Dienst neu starten
systemctl enable nginxAutostart aktivieren
journalctl -u nginx -fLive-Log eines Dienstes

Netzwerk & Debugging

ip addr showIP-Adressen anzeigen
ss -tlnpOffene Ports & Listener anzeigen
curl -I https://hostHTTP-Header prüfen
tail -f /var/log/nginx/error.logFehlerlog live verfolgen
htopInteraktiver Prozessmanager
df -hFestplattenbelegung anzeigen

Nginx-Konfiguration: Ein Virtual Host

Eine typische Nginx-Konfiguration für eine PHP-Website mit SSL/HTTPS:

server {
    listen 443 ssl http2;
    server_name www.example.de example.de;
    root /var/www/example/public;
    index index.php index.html;

    # TLS 1.3
    ssl_certificate     /etc/letsencrypt/live/example.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.de/privkey.pem;
    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    # Security Headers
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Strict-Transport-Security "max-age=63072000" always;

    # PHP-FPM
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # Static Files Caching
    location ~* \.(css|js|jpg|png|webp|woff2)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }

    # Deny dotfiles
    location ~ /\. { deny all; }
}

Dateiberechtigungen: Das Linux-Rechte-System

Linux verwendet ein Drei-Ebenen-Rechte-System: User, Group, Others. Jede Ebene hat Read (r=4), Write (w=2), Execute (x=1).

-rwxr-xr-x  1 www-data www-data  1234 Feb 15 index.php
│├─┤├─┤├─┤
│ │   │   └── Others: r-x (5) = lesen + ausführen
│ │   └────── Group:  r-x (5) = lesen + ausführen
│ └────────── User:   rwx (7) = lesen + schreiben + ausführen
└──────────── Typ:    - = Datei, d = Verzeichnis
644

Dateien (rw-r--r--)

755

Verzeichnisse (rwxr-xr-x)

600

Sensible Configs (rw-------)

Falsche Berechtigungen sind einer der häufigsten Fehler: chmod 777 (alles für alle) ist fast immer falsch und ein Sicherheitsrisiko.

SSH: Die sichere Remote-Verbindung

SSH (Secure Shell) ist das Standardprotokoll für die verschlüsselte Fernwartung von Linux-Servern. Port 22.

ssh user@server-ipVerbindung mit Passwort
ssh -i ~/.ssh/key user@serverVerbindung mit SSH-Key
ssh-keygen -t ed25519SSH-Keypair generieren
scp datei user@server:/path/Datei auf Server kopieren

Best Practice: SSH-Key statt Passwort, Root-Login deaktivieren, Port ändern, Fail2ban installieren.

PHP-FPM: PHP auf dem Server

Moderne PHP-Websites nutzen PHP-FPM (FastCGI Process Manager) statt des alten mod_php. PHP-FPM verwaltet einen Pool von PHP-Worker-Prozessen und ist deutlich performanter.

Prozess-Pool: Konfigurierbare Anzahl von Worker-Prozessen (pm.max_children)
Socket-Kommunikation: Unix-Socket (schneller) oder TCP-Port
OPcache: Kompilierter PHP-Bytecode wird gecacht → massiver Speedboost

Server-Administration? Wir übernehmen.

Mit unserem Managed Hosting müssen Sie sich um nichts davon kümmern — wir konfigurieren, optimieren und sichern Ihren Webserver. Nginx, PHP-FPM, TLS, Firewall — alles inklusive. Jetzt anfragen.

Passende Leistungen

Professionelle Umsetzung gesucht?

Sie möchten die Tipps aus diesem Artikel umsetzen lassen? Burwitz-IT unterstützt Sie als erfahrener Partner aus Norderstedt.

Weitere Artikel aus der Wissensdatenbank

Unterstützung bei Ihrem Webprojekt?

Lassen Sie uns in einem kostenlosen Erstgespräch herausfinden, wie wir Ihnen helfen können.

WhatsApp