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.

Anrufen WhatsApp