Laravel ist ein beliebtes PHP-Framework, das für moderne Webanwendungen vielseitige Features bietet. In Produktionsumgebungen sind jedoch zusätzliche Optimierungen notwendig, um hohe Lasten zu bewältigen und Hintergrundjobs effizient zu verarbeiten. Dieser Leitfaden zeigt, wie Sie einen stabilen Laravel Production Stack mit Queues, Horizon und PHP-FPM Tuning aufbauen.
PHP-FPM für Laravel optimieren
PHP-FPM (FastCGI Process Manager) ist essenziell, um Laravel performant auszuführen. Standardwerte reichen in Produktionsumgebungen oft nicht aus.
Empfohlene pm Einstellungen
[www]
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500
Diese Einstellungen sorgen dafür, dass ausreichend Worker bereitstehen, aber der Speicherverbrauch begrenzt bleibt. pm.max_requests hilft, Speicherlecks zu vermeiden.
OPcache aktivieren
opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.validate_timestamps=0
OPcache reduziert die PHP-Ausführungszeit, indem PHP-Skripte vorkompiliert im Speicher gehalten werden. Für Produktionssysteme sollte validate_timestamps deaktiviert werden, um maximale Geschwindigkeit zu erreichen.
Queues in Laravel konfigurieren
Laravel Queues ermöglichen die asynchrone Verarbeitung von Jobs, was die User-Experience verbessert und lange laufende Prozesse aus dem Request-Response-Zyklus auslagert.
Queue Driver
- Redis ist der empfohlene Driver für Produktion.
- In der
.envDatei konfigurieren:
QUEUE_CONNECTION=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Worker starten
php artisan queue:work --daemon --sleep=3 --tries=3
Der --daemon Modus sorgt dafür, dass Worker persistente Prozesse sind, was die Startup-Zeit reduziert. --sleep und --tries steuern Pausen und Retry-Verhalten.
Horizon für Monitoring und Management
Laravel Horizon ist ein Dashboard für Redis-basierte Queues und bietet detailliertes Monitoring, Job-Statistiken und Retry-Management.
Installation und Setup
composer require laravel/horizon
php artisan horizon:install
php artisan migrate
Horizon konfigurieren
// config/horizon.php
'environments' => [
'production' => [
'supervisor-1' => [
'connection' => 'redis',
'queue' => ['default'],
'balance' => 'simple',
'processes' => 10,
'tries' => 3,
],
],
],
Die Anzahl der processes sollte basierend auf der Serverkapazität und der erwarteten Job-Last gewählt werden.
Horizon starten
php artisan horizon
Horizon kann als Supervisor-Prozess laufen und überwacht automatisch Worker, startet sie neu und bietet ein Web-Dashboard unter /horizon.
Rate Limits und Job Queues
In produktiven Umgebungen sollten Sie Job Queues und Requests sorgfältig steuern, um Engpässe zu vermeiden.
Queue Prioritäten
- Mehrere Queues definieren:
default, emails, reports - Worker pro Queue anpassen, z. B. mehr Worker für kritische Jobs.
- Jobs mit
delay()planen, um Lastspitzen zu glätten.
Monitoring
- Horizon Dashboard für Echtzeit-Stats.
- Redis CLI für Queue-Längen prüfen:
redis-cli llen queues:default - Server-Metriken: CPU, RAM und PHP-FPM Status prüfen.
Zusammenfassung und Best Practices
- PHP-FPM dynamisch konfigurieren, OPcache aktivieren.
- Redis als Queue- und Object-Cache einsetzen.
- Horizon zur Job-Überwachung und Prozessmanagement nutzen.
- Queues priorisieren und Retry/Delay sinnvoll einsetzen.
- Monitoring von PHP-FPM, Redis und Horizon dauerhaft aktiv halten.
- Nginx als Frontend-Server für Lastverteilung und Keepalive optimieren.
Mit diesen Maßnahmen erreicht Ihr Laravel Production Stack stabile Performance, geringe Latenz bei Requests und eine zuverlässige Verarbeitung von Hintergrundjobs. Eine saubere Trennung von Queues, persistente Worker-Prozesse und ein aktives Monitoring sind essenziell für Enterprise-Umgebungen.
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

