Configuration de Nginx pour Laravel sur Ubuntu & Debian

Configuration de Nginx pour Laravel sur Ubuntu & Debian

Laravel est un cadre d'applications Web PHP populaire utilisé pour développer des applications Web robustes et dynamiques. En ce qui concerne le déploiement d'une application Laravel, Nginx est un choix de serveur Web populaire en raison de sa vitesse, de sa stabilité et de son évolutivité. La configuration de Nginx pour Laravel est importante pour les déploiements de production.

Dans ce tutoriel, nous fournirons un guide complet sur la façon de configurer Nginx pour une application Laravel.

Étape 1: Installer Nginx

Avant de pouvoir configurer Nginx pour votre application Laravel, vous devez d'abord installer Nginx sur votre serveur. Vous pouvez installer Nginx sur votre serveur à l'aide de la commande suivante:

Mise à jour Sudo apt-get  sudo apt-get install nginx  

Étape 2: Installez PHP

Pour exécuter une application Laravel sur Nginx, vous devez également installer PHP, qui est le langage de script avec lequel Laravel est construit. Vous pouvez installer PHP et ses dépendances en exécutant la commande suivante:

sudo apt-get install php php-fpm php-mysql 

Cette commande installe PHP, le gestionnaire de processus PHP FastCGI et l'extension MySQL pour PHP.

Une fois l'installation terminée, vous devez configurer PHP pour travailler avec Nginx. Vous pouvez le faire en modifiant le fichier de configuration PHP-FPM:

sudo nano / etc / php / 8.1 / fpm / piscine.d / www.confli 

Dans ce fichier, vous devez mettre à jour les paramètres suivants:

user = www-data Group = www-data écouter = / run / php / php8.1 fpm.chaussette
123user = www-datagroup = www-datalisten = / run / php / php8.1 fpm.chaussette

Ces paramètres garantissent que PHP s'exécute comme le même utilisateur et le même groupe que Nginx et écoute sur la prise correcte.

Enregistrez et fermez le fichier lorsque vous avez terminé, puis redémarrez PHP-FPM pour appliquer les modifications:

sudo systemctl redémarrer php8.1 fpm 

Avec PHP installé et configuré, votre serveur Nginx est maintenant prêt à servir les applications Laravel.

Étape 3: Créez un bloc de serveur Nginx

L'étape suivante consiste à créer un bloc de serveur Nginx, qui est utilisé pour définir les paramètres de configuration pour un site Web ou une application spécifique. Pour créer un bloc de serveur pour votre application Laravel, créez un nouveau fichier dans le répertoire / etc / nginx / sites disponibles, comme suit:

sudo nano / etc / nginx / sites-disponible / laravel 

Dans ce fichier, ajoutez les paramètres de configuration suivants:

Server écouter 80; Exemple de nom.com; root / var / www / laravel / public; Index index.PHP; Emplacement / try_files $ uri $ uri / / index.php?$ query_string; Emplacement ~ \.php $ try_files $ uri = 404; fastcgi_pass Unix: / run / php / php8.1 fpm.chaussette; Index FastCGI_INDEX.PHP; fastcgi_param script_filename $ document_root $ fastcgi_script_name; Inclure FastCGI_PARAMS;
12345678910111213141516171819Server écouter 80; Exemple de nom.com; root / var / www / laravel / public; Index index.PHP; Emplacement / try_files $ uri $ uri / / index.php?$ query_string; Emplacement ~ \.php $ try_files $ uri = 404; fastcgi_pass Unix: / run / php / php8.1 fpm.chaussette; Index FastCGI_INDEX.PHP; fastcgi_param script_filename $ document_root $ fastcgi_script_name; Inclure FastCGI_PARAMS;

Dans cette configuration, nous écoutons sur le port 80, définissant le nom du serveur comme exemple.com, et définir le répertoire racine de l'application Laravel. Nous spécifions également le fichier d'index et définissons le bloc de localisation de l'application Laravel. De plus, nous définissons le bloc de localisation pour les fichiers PHP et spécifiant les paramètres FastCGI.

Étape 4: Activer le bloc de serveur Nginx

Une fois que vous avez créé le bloc serveur, vous devez l'activer. Pour ce faire, créez un lien symbolique du fichier / etc / nginx / sites disponibles / Laravel au répertoire compatible / etc / nginx / sites, comme suit:

sudo ln -s / etc / nginx / sites-disponible / laravel / etc / nginx / sites compatible / 

Avant de redémarrer Nginx, vous devez tester la configuration pour vous assurer qu'il n'y a pas d'erreurs de syntaxe. Vous pouvez tester la configuration à l'aide de la commande suivante:

sudo nginx -t 

S'il n'y a pas d'erreurs de syntaxe, vous pouvez redémarrer Nginx en utilisant la commande suivante:

sudo systemctl redémarrer nginx 

Étape 5: Configurer SSL / TLS

Pour sécuriser votre application Laravel, vous devez configurer SSL / TLS. Pour ce faire, vous devrez obtenir un certificat SSL / TLS à partir d'une autorité de certificat de confiance (CA) et l'installer sur votre serveur. Une fois que vous avez obtenu un certificat, vous pouvez configurer SSL / TLS en ajoutant les paramètres de configuration suivants au bloc serveur:

Écoutez 443 SSL; ssl_certificate / path / to / votre certificat.pem; ssl_certificate_key / path / to / votre / privé.clé;
1234Écoutez 443 SSL; ssl_certificate / path / to / votre certificat.pem; ssl_certificate_key / path / to / votre / privé.clé;

Vous devez remplacer le / path / vers / votre certificat.pem et / path / vers / votre / privé.Clé avec les chemins vers votre certificat SSL / TLS et votre clé privée, respectivement.

Étape 6: Optimiser les performances

Pour optimiser les performances de votre application Laravel, vous pouvez configurer la mise en cache Nginx. La mise en cache peut aider à réduire le chargement des serveurs et à améliorer les temps de chargement des pages. Pour activer la mise en cache, vous pouvez ajouter les paramètres de configuration suivants au bloc du serveur:

Activation de la mise en cache

La mise en cache peut aider à améliorer les performances de votre application Laravel en réduisant le chargement du serveur et en améliorant les temps de chargement de page. Pour activer la mise en cache dans Nginx, vous pouvez ajouter la configuration suivante au bloc serveur:

Emplacement ~ * \.(jpg | jpeg | png | gif | ico | css | js) $ expire 1y; Add_header Cache-Control "Public, No-Transform";
1234Emplacement ~ * \.(jpg | jpeg | png | gif | ico | css | js) $ expire 1y; Add_header Cache-Control "public, sans transform";

Cette configuration indique à Nginx de Cache Image, CSS et JavaScript Files pendant un an et d'envoyer un en-tête de contrôle de cache «public».

Activer la compression GZIP

L'activation de la compression GZIP peut également aider à améliorer les performances de votre application Laravel en réduisant la taille des fichiers transférés entre le serveur et le client. Pour activer la compression GZIP dans Nginx, vous pouvez ajouter la configuration suivante au bloc du serveur:

gzip sur; GZIP_TYPES Text / Text brut / CSS Application / JSON Application / JavaScript Text / XML Application / XML Application / XML + RSS Text / JavaScript;
12GZIP ON; GZIP_TYPES TEXT / Texte brut / CSS Application / JSON Application / JavaScript Text / XML Application / XML Application / XML + RSS Text / JavaScript;

Cette configuration indique à Nginx d'activer la compression GZIP pour les types de fichiers textuels.

Ajuster les processus et connexions des travailleurs

Enfin, vous pouvez ajuster les processus et les connexions des travailleurs pour optimiser les performances de votre application Laravel sur Nginx. Cela peut aider à garantir que votre serveur peut gérer un grand nombre de demandes sans être dépassé. Pour ajuster les processus et les connexions des travailleurs, vous pouvez ajouter la configuration suivante au bloc HTTP dans le nginx.Fichier Conf:

wearch_prosses auto; Worker_Connections 1024;
12wearch_processes auto; worker_connections 1024;

Cette configuration indique à Nginx de détecter automatiquement le nombre de cœurs CPU sur le serveur et d'utiliser ce nombre pour les processus de travail. Il spécifie également un maximum de 1024 connexions par processus de travailleur.

Conclusion

Dans ce tutoriel, nous avons fourni un guide complet sur la façon de configurer Nginx pour une application Laravel. Nous avons couvert les étapes pour installer et configurer Nginx, créer un bloc de serveur Nginx pour Laravel, activer SSL / TLS et optimiser les performances. En suivant ces étapes, vous pouvez vous assurer que votre application Laravel fonctionne bien et efficacement sur Nginx.