Cómo configurar Nginx para Laravel en Ubuntu y Debian

22 feb 2023 4 min di lettura
Cómo configurar Nginx para Laravel en Ubuntu y Debian
Indice dei contenuti

Introducción

Laravel es un marco web gratuito y de código abierto escrito en PHP. Fue creado por Taylor Otwell en 2011 con el objetivo de simplificar el desarrollo de aplicaciones web proporcionando una sintaxis elegante y expresiva para escribir código.

Laravel se basa en una arquitectura Model-View-Controller (MVC) y ofrece muchas funciones, incluida la gestión de migración de bases de datos, gestión de sesiones y autenticación, enrutamiento, procesamiento de solicitudes HTTP y generación de vistas.

Laravel también es conocido por su gran comunidad de desarrolladores que ayudan a mejorar y mantener el marco. Esto significa que hay muchos recursos en línea disponibles, como documentación oficial, tutoriales, foros y paquetes de terceros, que se pueden usar para ayudar en el desarrollo de aplicaciones web de Laravel.

En este tutorial, proporcionaremos una guía completa sobre cómo configurar Nginx para una aplicación Laravel.

Instalar Nginx

Antes de poder configurar Nginx para su aplicación Laravel, primero debe instalar Nginx en su servidor. Puede instalar Nginx en su servidor usando el siguiente comando:

sudo apt-get update
sudo apt-get install nginx

Instalar PHP

Para ejecutar una aplicación Laravel en Nginx, también necesita instalar PHP, que es el lenguaje de secuencias de comandos con el que se construye Laravel. Puede instalar PHP y sus dependencias ejecutando el siguiente comando:

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

Este comando instala PHP, PHP FastCGI Process Manager y la extensión MySQL para PHP.

Una vez completada la instalación, debe configurar PHP para que funcione con Nginx. Puede hacer esto editando el archivo de configuración de php-fpm:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

En este archivo, debe actualizar la siguiente configuración:

user = www-data
 group = www-data
 listen = /run/php/php8.1-fpm.sock

Estas configuraciones aseguran que PHP se ejecute bajo el mismo usuario y grupo que Nginx y esté escuchando en el socket correcto.

Guarde y cierre el archivo cuando haya terminado, luego reinicie PHP-FPM para aplicar los cambios:

sudo systemctl restart php8.1-fpm

Con PHP instalado y configurado, su servidor Nginx ahora está listo para servir aplicaciones Laravel.

Crear un bloque de servidor Nginx

El siguiente paso es crear un bloque de servidor Nginx, que se usa para definir los ajustes de configuración para un sitio web o una aplicación específicos. Para crear un bloque de servidor para su aplicación Laravel, cree un nuevo archivo en el directorio /etc/nginx/sites-available, de la siguiente manera:

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

En este archivo, agregue los siguientes ajustes de configuración:

server {
 listen 80;
 server_name example.com;
 root /var/www/laravel/public;

 index index.php;

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

 location ~ \.php$ {
 try_files $uri =404;
 fastcgi_pass unix:/run/php/php8.1-fpm.sock;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }
 }

En esta configuración, escuchamos en el puerto 80, definiendo el nombre del servidor como example.com y configurando el directorio raíz para la aplicación Laravel. También estamos especificando el archivo de índice y definiendo el bloque de ubicación para la aplicación Laravel. Además, estamos definiendo el bloqueo de ubicación para los archivos PHP y especificando los parámetros FastCGI.

Habilitar el bloqueo del servidor Nginx

Después de crear el bloque del servidor, debe habilitarlo. Para hacer esto, cree un enlace simbólico desde el archivo /etc/nginx/sites-disponible/laravel al directorio /etc/nginx/sites-enabled, de la siguiente manera:

sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/

Antes de reiniciar Nginx, debe probar su configuración para asegurarse de que no haya errores de sintaxis. Puede probar la configuración usando el siguiente comando:

sudo nginx -t

Si no hay errores de sintaxis, puede reiniciar Nginx con el siguiente comando:

sudo systemctl restart nginx

Configurar SSL/TLS

Para asegurar su aplicación Laravel, necesita configurar SSL/TLS. Para ello, deberá obtener un certificado SSL/TLS de una Autoridad de certificación (CA) de confianza e instalarlo en su servidor. Una vez que tenga un certificado, puede configurar SSL/TLS agregando las siguientes opciones de configuración al bloque del servidor:

listen 443 ssl;

 ssl_certificate /path/to/your/certificate.pem;
 ssl_certificate_key /path/to/your/private.key;

Debe reemplazar /ruta/a/su/certificado.pem y /ruta/a/su/clave privada con las rutas a su certificado SSL/TLS y clave privada, respectivamente.

Optimizar el rendimiento

Para optimizar el rendimiento de su aplicación Laravel, puede configurar el almacenamiento en caché de Nginx. El almacenamiento en caché puede ayudar a reducir la carga del servidor y mejorar los tiempos de carga de la página. Para habilitar el almacenamiento en caché, puede agregar los siguientes ajustes de configuración al bloque del servidor:

Habilitar almacenamiento en caché

El almacenamiento en caché puede ayudar a mejorar el rendimiento de su aplicación Laravel al reducir la carga del servidor y mejorar los tiempos de carga de la página. Para habilitar el almacenamiento en caché en Nginx, puede agregar la siguiente configuración a su bloque de servidor:

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

Esta configuración le indica a Nginx que almacene en caché los archivos de imagen, CSS y JavaScript durante un año y envíe un encabezado de control de caché "público".

Habilitar la compresión Gzip

Habilitar la compresión gzip también puede ayudar a mejorar el rendimiento de su aplicación Laravel al reducir el tamaño de los archivos transferidos entre el servidor y el cliente. Para habilitar la compresión gzip en Nginx, puede agregar la siguiente configuración a su bloque de servidor:

gzip on;
 gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Esta configuración le dice a Nginx que habilite la compresión gzip para tipos de archivos basados en texto.

Regular los procesos y las conexiones de los trabajadores

Finalmente, puede ajustar los procesos de trabajo y las conexiones para optimizar el rendimiento de su aplicación Laravel en Nginx. Esto puede ayudar a garantizar que su servidor pueda manejar una gran cantidad de solicitudes sin verse abrumado. Para regular los procesos y las conexiones de los trabajadores, puede agregar la siguiente configuración al bloque http en el archivo nginx.conf:

worker_processes auto;
 worker_connections 1024;

Esta configuración le indica a Nginx que detecte automáticamente la cantidad de núcleos de CPU en el servidor y use esa cantidad para los procesos de trabajo. También especifica un máximo de 1024 conexiones por proceso de trabajo.

Conclusión

En este tutorial, proporcionamos una guía completa sobre cómo configurar Nginx para una aplicación Laravel. Hemos cubierto los pasos para instalar y configurar Nginx, crear un bloque de servidor Nginx para Laravel, habilitar SSL/TLS y optimizar el rendimiento. Al seguir estos pasos, puede asegurarse de que su aplicación Laravel se ejecute sin problemas y de manera eficiente en Nginx.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.