Configuración de Nginx para Laravel en Ubuntu y Debian

Configuración de Nginx para Laravel en Ubuntu y Debian

Laravel es un marco popular de aplicaciones web PHP utilizadas para desarrollar aplicaciones web robustas y dinámicas. Cuando se trata de implementar una aplicación Laravel, NGINX es una opción popular del servidor web debido a su velocidad, estabilidad y escalabilidad. La configuración de Nginx para Laravel es importante para las implementaciones de producción.

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

Paso 1: Instale Nginx

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

actualización de sudo apt-get  sudo apt-get install nginx  

Paso 2: instalar PHP

Para ejecutar una aplicación Laravel en NGINX, también debe instalar PHP, que es el lenguaje de secuencias de comandos con el que Laravel está construido. Puede instalar PHP y sus dependencias ejecutando el siguiente comando:

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

Este comando instala PHP, el Administrador de procesos PHP FastCGI y la extensión MySQL para PHP.

Una vez que se completa la instalación, debe configurar PHP para trabajar con Nginx. Puede hacerlo editando el archivo de configuración de PHP-FPM:

sudo nano/etc/php/8.1/fpm/piscina.D/www.confusión 

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

user = www-data group = www-data escucha =/run/php/php8.1-fpm.calcetín
123usuario = www-dataGroup = www-datalisten =/run/php/php8.1-fpm.calcetín

Estas configuraciones aseguran que PHP se ejecute como el mismo usuario y agrupa que NGINX y escucha en el socket correcto.

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

sudo systemctl reiniciar PHP8.1-fpm 

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

Paso 3: crear un bloque de servidor NGINX

El siguiente paso es crear un bloque de servidor NGINX, que se utiliza para definir la configuración de configuración para un sitio web o aplicación específica. Para crear un bloque de servidor para su aplicación Laravel, cree un nuevo archivo en el directorio/etc/nginx/sites disponible, de la siguiente manera:

sudo nano/etc/nginx/sites disponible/laravel 

En este archivo, agregue la siguiente configuración de configuración:

servidor escuchar 80; Ejemplo de server_name.com; root/var/www/laravel/public; índice índice.php; ubicación / try_files $ uri $ uri / / index.php?$ QUERY_STRING; ubicación ~ \ \.php $ try_files $ uri = 404; fastcgi_pass unix:/run/php/php8.1-fpm.calcetín; Índice FastCGI_Index.php; fastcgi_param script_filename $ document_root $ fastcgi_script_name; incluir fastcgi_params;
12345678910111213141516171819servidor escuchar 80; Ejemplo de server_name.com; root/var/www/laravel/public; índice índice.php; ubicación / try_files $ uri $ uri / / index.php?$ QUERY_STRING; ubicación ~ \ \.php $ try_files $ uri = 404; fastcgi_pass unix:/run/php/php8.1-fpm.calcetín; Índice FastCGI_Index.php; fastcgi_param script_filename $ document_root $ fastcgi_script_name; incluir fastcgi_params;

En esta configuración, estamos escuchando en el puerto 80, definiendo el nombre del servidor como ejemplo.com, y configurar 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 bloque de ubicación para archivos PHP y especificando los parámetros FASTCGI.

Paso 4: Habilite el bloque de servidor NGINX

Una vez que haya creado el bloque del servidor, debe habilitarlo. Para hacerlo, cree un enlace simbólico desde el archivo/etc/nginx/sites-disponible/laravel al directorio habilitado/etc/nginx/sites, como sigue:

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

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

sudo nginx -t 

Si no hay errores de sintaxis, puede reiniciar NGINX usando el siguiente comando:

sudo systemctl reiniciar nginx 

Paso 5: Configurar SSL/TLS

Para asegurar su aplicación Laravel, debe configurar SSL/TLS. Para hacerlo, deberá obtener un certificado SSL/TLS de una autoridad de certificado de confianza (CA) e instalarlo en su servidor. Una vez que haya obtenido un certificado, puede configurar SSL/TLS agregando la siguiente configuración de configuración al bloque del servidor:

Escuche 443 SSL; ssl_certificate/rath/to/su/certificado.pem; ssl_certificate_key/rath/to/your/private.llave;
1234Escuche 443 SSL; ssl_certificate/rath/to/su/certificado.PEM; SSL_CERTIFICATE_KEY/PATH/TO/Your/Private.llave;

Debe reemplazar la/ruta/to/su/certificado.PEM y/Path/To/Your/Private.clave con las rutas a su certificado SSL/TLS y la clave privada, respectivamente.

Paso 6: 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 la siguiente configuración de configuración al bloque del servidor:

Habilitando el almacenamiento en caché

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

Ubicación ~* \.(jpg | jpeg | png | gif | ico | css | js) $ expire 1y; add_header cache-control "público, sin transformación";
1234Ubicación ~* \.(jpg | jpeg | png | gif | ico | css | js) $ expire 1y; Add_header Cache-Control "público, sin transformación";

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

Habilitando la compresión de GZIP

Habilitar la compresión de GZIP también puede ayudar a mejorar el rendimiento de su aplicación Laravel reduciendo el tamaño de los archivos que se transfieren entre el servidor y el cliente. Para habilitar la compresión de GZIP en NGINX, puede agregar la siguiente configuración al bloque del servidor:

gzip on; gzip_types text/sencillo text/css aplicación/json aplicación/javascript text/xml aplicación/xml aplicación/xml+rss text/javaScript;
12gzip on; gzip_types text/sencillo text/css aplicación/json aplicación/javascript text/xml aplicación/xml aplicación/xml+rss text/javaScript;

Esta configuración le dice a NGINX que habilite la compresión de GZIP para los tipos de archivos basados ​​en texto.

Ajustar procesos y conexiones de los trabajadores

Finalmente, puede ajustar los procesos y las conexiones de los trabajadores 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 sentirse abrumado. Para ajustar los procesos y las conexiones de los trabajadores, puede agregar la siguiente configuración al bloque HTTP en el Nginx.Archivo Conf:

Worker_processes Auto; Worker_Connections 1024;
12Worker_processes Auto; Worker_Connections 1024;

Esta configuración le dice a NGINX que detecte automáticamente el número de núcleos de CPU en el servidor y que use ese número para los procesos de trabajo. También especifica un máximo de 1024 conexiones por proceso de trabajo.

Conclusión

En este tutorial, hemos proporcionado una guía completa sobre cómo configurar Nginx para una aplicación de 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. Siguiendo estos pasos, puede asegurarse de que su aplicación Laravel se ejecute sin problemas y eficientemente en Nginx.