0Pricing
PHP Academy · Lektion

Nginx- und PHP-FPM-Konfiguration

Richten Sie Nginx als Reverse-Proxy für PHP-FPM zum Bereitstellen von PHP-Anwendungen ein.

Nginx- und PHP-FPM-Konfiguration ist eine kostenlose PHP Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des PHP Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Nginx + PHP-FPM?

Nginx ist ein leistungsstarker Webserver und Reverse Proxy. PHP-FPM (FastCGI Process Manager) verwaltet einen Pool von PHP-Worker-Prozessen. Nginx leitet PHP-Anfragen über FastCGI an FPM weiter.

Einfacher Nginx-Serverblock

Eine minimale Nginx-Konfiguration für eine PHP-Anwendung.

# /etc/nginx/sites-available/myapp
server {
    listen 80;
    server_name example.com;
    root /srv/myapp/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

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

    location ~ /\.ht {
        deny all;
    }
}

try_files-Direktive

try_files $uri $uri/ /index.php?$query_string versucht zuerst, eine statische Datei bereitzustellen. Wird keine gefunden, greift die Konfiguration auf index.php zurück – dadurch wird das Front-Controller-Routing (Laravel, Symfony) ermöglicht.

PHP-FPM-Pool-Konfiguration

Konfigurieren Sie den Worker-Pool in /etc/php/8.3/fpm/pool.d/www.conf.

[www]
pm = dynamic
pm.max_children      = 20
pm.start_servers     = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests      = 500  ; recycle workers to prevent leaks

Unix-Socket vs. TCP

Die Verwendung eines Unix-Sockets (fastcgi_pass unix:/run/php/php8.3-fpm.sock) ist für die Kommunikation auf demselben Rechner schneller als TCP (127.0.0.1:9000).

HTTPS mit Let's Encrypt

Verwenden Sie Certbot, um kostenlose TLS-Zertifikate zu erhalten.

$ certbot --nginx -d example.com
# Certbot modifies your Nginx config and sets up auto-renewal

Gzip-Komprimierung

Aktivieren Sie gzip, um die Größe von Antworten zu reduzieren.

# nginx.conf or server block:
gzip on;
gzip_types text/plain text/css application/javascript application/json;
gzip_min_length 1024;

Browser-Caching für statische Assets

Fügen Sie Cache-Control-Header für statische Dateien hinzu.

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

Rate Limiting in Nginx

Begrenzen Sie Anfragen pro IP-Adresse mithilfe des Moduls limit_req – die erste Verteidigungslinie, bevor PHP überhaupt startet.

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
}

server {
    location /api/ {
        limit_req zone=one burst=20 nodelay;
    }
}

Sicherheits-Header

Fügen Sie allen Antworten Sicherheits-Header hinzu.

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";

Reload vs. Restart

Nach Änderungen an der Nginx-Konfiguration laden Sie sie kontrolliert neu, ohne Ausfallzeit: nginx -t && nginx -s reload. Nach Änderungen an der PHP-FPM-Konfiguration: systemctl reload php8.3-fpm.

Zusammenfassung

Konfigurieren Sie Nginx mit einem Serverblock, der über FastCGI auf public/index.php verweist. Optimieren Sie die Einstellungen des PHP-FPM-Pools. Verwenden Sie Unix-Sockets. Aktivieren Sie HTTPS, gzip und das Caching statischer Dateien.

Kurzer Check

Was bewirkt try_files $uri $uri/ /index.php?$query_string?

Häufig gestellte Fragen

Ist die Lektion „Nginx- und PHP-FPM-Konfiguration“ kostenlos?

Ja — der vollständige Text von „Nginx- und PHP-FPM-Konfiguration“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des PHP Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der PHP Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Nginx- und PHP-FPM-Konfiguration“?

Richten Sie Nginx als Reverse-Proxy für PHP-FPM zum Bereitstellen von PHP-Anwendungen ein. Du übst PHP Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um PHP Academy zu starten?

Keine Vorkenntnisse erforderlich. PHP Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Nginx- und PHP-FPM-Konfiguration“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser PHP Academy-Lektion Code schreiben und ausführen?

Ja. Jede PHP Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Nginx- und PHP-FPM-Konfiguration
  2. Umgebungsvariablen und .env-Dateien
  3. Mit GitHub Actions deployen
  4. Eine PHP-Anwendung containerisieren
← Zurück zu PHP Academy