Konfigurieren von Nginx für Laravel auf Ubuntu & Debian

Konfigurieren von Nginx für Laravel auf Ubuntu & Debian

Laravel ist ein beliebtes PHP -Webanwendungs ​​-Framework, das zur Entwicklung robuster und dynamischer Webanwendungen verwendet wird. Wenn es um die Bereitstellung einer Laravel -Anwendung geht, ist NGINX aufgrund ihrer Geschwindigkeit, Stabilität und Skalierbarkeit eine beliebte Webserverauswahl. Das Konfigurieren von NGINX für Laravel ist für die Produktionsbereitstellungen wichtig.

In diesem Tutorial bieten wir eine umfassende Anleitung zum Konfigurieren von NGINX für eine Laravel -Anwendung.

Schritt 1: Installieren Sie Nginx

Bevor Sie NGINX für Ihre Laravel -Anwendung konfigurieren können, müssen Sie zuerst Nginx auf Ihrem Server installieren. Sie können NGINX auf Ihrem Server mit dem folgenden Befehl installieren:

sudo apt-Get-Update  sudo apt-get install nginx  

Schritt 2: PHP installieren

Um eine Laravel -Anwendung auf Nginx auszuführen, müssen Sie auch PHP installieren, wobei die Skriptsprache ist, mit der Laravel erstellt wurde. Sie können PHP und seine Abhängigkeiten installieren, indem Sie den folgenden Befehl ausführen:

sudo apt-Get-Installation von PHP-PHP-FPM PHP-MYSQL 

Dieser Befehl installiert PHP, den PHP FASTCGI -Prozessmanager und die MySQL -Erweiterung für PHP.

Sobald die Installation abgeschlossen ist, müssen Sie PHP so konfigurieren, dass sie mit Nginx arbeiten können. Sie können dies tun, indem Sie die PHP-FPM-Konfigurationsdatei bearbeiten:

sudo nano/etc/php/8.1/fpm/Pool.D/www.Conf 

In dieser Datei müssen Sie die folgenden Einstellungen aktualisieren:

user = www-data Group = www-data listen =/run/php/php8.1-fpm.Socke
123user = www-datagroup = www-datalisten =/run/php/php8.1-fpm.Socke

Diese Einstellungen stellen sicher, dass PHP als NGINX als gleicher Benutzer und gleichen Gruppen ausgeführt wird und auf dem richtigen Socket hört.

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und starten Sie dann PHP-FPM neu, um die Änderungen anzuwenden:

sudo systemctl starten Sie Php8 neu.1-fpm 

Wenn PHP installiert und konfiguriert ist, ist Ihr Nginx -Server jetzt bereit, Laravel -Anwendungen zu bedienen.

Schritt 3: Erstellen Sie einen Nginx -Serverblock

Der nächste Schritt besteht darin, einen Nginx -Server -Block zu erstellen, mit dem die Konfigurationseinstellungen für eine bestimmte Website oder Anwendung definiert werden können. Um einen Serverblock für Ihre Laravel-Anwendung zu erstellen, erstellen Sie wie folgt eine neue Datei im Verzeichnis/etc/nginx/seites-verfügbar:

sudo nano/etc/nginx/stellvertretende/laravel 

Fügen Sie in dieser Datei die folgenden Konfigurationseinstellungen hinzu:

Server Listen 80; server_name Beispiel.com; root/var/www/laravel/public; Indexindex.PHP; location / try_files $ uri $ uri / / Index.Php?$ query_string; Ort ~ \.php $ try_files $ uri = 404; FASTCGI_PASS UNIX:/Run/PHP/PHP8.1-fpm.Socke; FASTCGI_INDEX INDEX.PHP; fastcgi_param script_filename $ document_root $ fastcgi_script_name; FASTCGI_PARAMS einschließen;
12345678910111213141516171819Server Listen 80; server_name Beispiel.com; root/var/www/laravel/public; Indexindex.PHP; location / try_files $ uri $ uri / / Index.Php?$ query_string; Ort ~ \.php $ try_files $ uri = 404; FASTCGI_PASS UNIX:/Run/PHP/PHP8.1-fpm.Socke; FASTCGI_INDEX INDEX.PHP; fastcgi_param script_filename $ document_root $ fastcgi_script_name; FASTCGI_PARAMS einschließen;

In dieser Konfiguration hören wir auf Port 80 und definieren den Servernamen als Beispiel.com und das Stammverzeichnis für die Laravel -Anwendung festlegen. Wir geben auch die Indexdatei an und definieren den Standortblock für die Laravel -Anwendung. Darüber hinaus definieren wir den Standortblock für PHP -Dateien und geben die FASTCGI -Parameter an.

Schritt 4: Aktivieren Sie den Nginx -Serverblock

Sobald Sie den Serverblock erstellt haben, müssen Sie ihn aktivieren. Erstellen Sie dazu einen symbolischen Link aus der Datei/etc/nginx/sites-verfügbare/laravel-Datei in das Verzeichnis/etc/nginx/sites-fähige, wie folgt:

sudo ln -s/etc/nginx/sites-verfügbare/laravel/etc/nginx/sites-fähig/ 

Vor dem Neustart von NginX sollten Sie die Konfiguration testen, um sicherzustellen, dass keine Syntaxfehler vorliegen. Sie können die Konfiguration mit dem folgenden Befehl testen:

sudo nginx -t 

Wenn es keine Syntaxfehler gibt, können Sie Nginx mit dem folgenden Befehl neu starten:

sudo systemctl starten nginx neu 

Schritt 5: SSL/TLS konfigurieren

Um Ihre Laravel -Anwendung zu sichern, sollten Sie SSL/TLS konfigurieren. Dazu müssen Sie ein SSL/TLS -Zertifikat von einer vertrauenswürdigen Zertifikatsbehörde (CA) erhalten und auf Ihrem Server installieren. Sobald Sie ein Zertifikat erhalten haben, können Sie SSL/TLS konfigurieren, indem Sie die folgenden Konfigurationseinstellungen zum Serverblock hinzufügen:

Hören Sie 443 SSL; SSL_Certificate/Path/to/Ihr/Zertifikat.Pem; ssl_certificate_key/path/to/Your/privat.Taste;
1234Hören Sie 443 SSL; SSL_Certificate/Path/to/Ihr/Zertifikat.pem; ssl_certificate_key/path/to/your/privat.Taste;

Sie sollten den/Pfad/zu/Ihr//Ihr Zertifikat ersetzen.PEM und/Pfad/to/Your/Privat.Schlüssel mit den Pfaden zu Ihrem SSL/TLS -Zertifikat bzw. dem privaten Schlüssel.

Schritt 6: Die Leistung optimieren

Um die Leistung Ihrer Laravel -Anwendung zu optimieren, können Sie Nginx Caching konfigurieren. Caching kann dazu beitragen, die Ladezeiten des Servers zu verringern und die Seitenladungszeiten zu verbessern. Um das Caching zu aktivieren, können Sie dem Serverblock die folgenden Konfigurationseinstellungen hinzufügen:

Caching ermöglichen

Durch das Caching können Sie die Leistung Ihrer Laravel -Anwendung verbessern, indem die Last des Servers reduziert und die Seitenladezeiten verbessert werden. Um das Caching in Nginx zu aktivieren, können Sie dem Serverblock die folgende Konfiguration hinzufügen:

Ort ~* \.(JPG | JPEG | PNG | GIF | ICO | CSS | JS) $ lehnt 1y ab; add_header cache-kontroll "public, no-transform";
1234Ort ~* \.(JPG | JPEG | PNG | GIF | ICO | CSS | JS) $ lehnt 1y ab; add_header cache-kontroll "public, no-transform";

Diese Konfiguration zeigt Nginx für ein Jahr auf Cache-Bild, CSS und JavaScript-Dateien und sendet einen „öffentlichen“ Cache-Control-Header.

Aktivierung der GZIP -Kompression

Das Aktivieren der GZIP -Komprimierung kann auch dazu beitragen, die Leistung Ihrer Laravel -Anwendung zu verbessern, indem die Größe der Dateien reduziert wird, die zwischen dem Server und dem Client übertragen werden. Um die GZIP -Komprimierung in Nginx zu aktivieren, können Sie dem Serverblock die folgende Konfiguration hinzufügen:

gzip auf; GZIP_TYPES -Text/Klartext/CSS -Anwendung/JSON -Anwendung/JavaScript Text/XML -Anwendung/XML -Anwendung/XML+RSS Text/JavaScript;
12GZIP on; gzip_types text/klare text/css application/json application/javaScript text/xml application/xml application/xml+rSS text/javaScript;

Diese Konfiguration gibt Nginx an, die GZIP-Komprimierung für textbasierte Dateitypen zu aktivieren.

Anpassen von Arbeitsprozessen und Verbindungen

Schließlich können Sie die Arbeitsprozesse und Verbindungen anpassen, um die Leistung Ihrer Laravel -Anwendung auf NGINX zu optimieren. Dies kann dazu beitragen, dass Ihr Server eine große Anzahl von Anfragen bearbeiten kann, ohne überfordert zu werden. Um die Arbeitsprozesse und Verbindungen anzupassen, können Sie dem HTTP -Block im NGINX die folgende Konfiguration hinzufügen.Conf -Datei:

Worker_Processes Auto; Worker_Connections 1024;
12Worker_Processes Auto; Worker_Connections 1024;

In dieser Konfiguration wird Nginx angewiesen, die Anzahl der CPU -Kerne auf dem Server automatisch zu erkennen und diese Nummer für die Arbeitsprozesse zu verwenden. Es gibt auch maximal 1024 Verbindungen pro Arbeitsprozess fest.

Abschluss

In diesem Tutorial haben wir eine umfassende Anleitung zum Konfigurieren von NGINX für eine Laravel -Anwendung bereitgestellt. Wir haben die Schritte zur Installation und Konfiguration von NginX abgedeckt, einen Nginx -Serverblock für Laravel erstellen, SSL/TLS aktivieren und die Leistung optimieren. Wenn Sie diese Schritte befolgen, können Sie sicherstellen, dass Ihre Laravel -Anwendung reibungslos und effizient auf Nginx ausgeführt wird.