Volver a la página principal
martes 23 julio 2024
75

Cómo configurar nginx para una aplicación React

Prerrequisitos

Antes de comenzar, asegúrate de tener lo siguiente:

1. Una aplicación React compilada (generalmente en la carpeta build).

2. Nginx instalado en tu servidor.

Paso 1: Crear la Aplicación React y Generar los Archivos de Producción

Primero, crea tu aplicación React (si no lo has hecho ya) y compílala para producción. Usa el siguiente comando en tu proyecto de React:

npm run build

Esto creará una carpeta build con los archivos optimizados para producción.

Paso 2: Instalar Nginx

Si Nginx no está instalado en tu servidor, puedes instalarlo usando el siguiente comando en una distribución basada en Debian/Ubuntu:

sudo apt update
sudo apt install nginx

Para CentOS/RHEL, usa:

sudo yum install epel-release
sudo yum install nginx

Paso 3: Configurar Nginx

Configura Nginx para servir tu aplicación React. Para ello, crea un archivo de configuración nuevo o edita uno existente.

Crear un Archivo de Configuración Nuevo

Crea un archivo de configuración nuevo en el directorio de configuración de Nginx (/etc/nginx/sites-available/ en Debian/Ubuntu o /etc/nginx/conf.d/ en CentOS/RHEL).

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

Configuración Básica de Nginx

A continuación se muestra una configuración básica para servir una aplicación React:

server {
    listen 80;
    server_name your_domain.com;  # Reemplaza con tu dominio

    root /var/www/react_app/build;  # Reemplaza con la ruta a tu carpeta build

    index index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
    }

    error_page 404 /404.html;
    location = /404.html {
        internal;
    }

    # Configuración para manejar HTTPS (opcional)
    listen 443 ssl;
    ssl_certificate /etc/ssl/certs/your_certificate.crt;  # Reemplaza con tu certificado SSL
    ssl_certificate_key /etc/ssl/private/your_private_key.key;  # Reemplaza con tu clave privada

    # Configuración adicional de SSL (opcional)
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'HIGH:!aNULL:!MD5';
}

Enlazar la Configuración y Reiniciar Nginx

Enlaza tu archivo de configuración nuevo al directorio de sitios habilitados (en Debian/Ubuntu):

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

En CentOS/RHEL, el archivo de configuración ya está en el directorio correcto si lo creaste en /etc/nginx/conf.d/.

Reinicia Nginx para aplicar los cambios:

sudo systemctl restart nginx

Paso 4: Subir Archivos de la Aplicación

Asegúrate de que los archivos de la aplicación React estén en el directorio correcto (/var/www/react_app/build en nuestro ejemplo). Puedes usar scp, rsync, o cualquier otro método de transferencia de archivos para subir los archivos de la carpeta build a tu servidor.

Paso 5: Verificar la Configuración

Después de reiniciar Nginx, tu aplicación React debería estar disponible en tu dominio. Abre un navegador web y navega a http://your_domain.com para verificar que la aplicación se esté sirviendo correctamente.

Solución de Problemas

Si encuentras problemas, aquí hay algunos pasos de solución de problemas:

1. Revisar los Logs: Los archivos de log de Nginx pueden proporcionar información útil.

sudo tail -f /var/log/nginx/error.log
   sudo tail -f /var/log/nginx/access.log

2. Sintaxis de Configuración: Verifica la sintaxis de tu archivo de configuración de Nginx.

sudo nginx -t

3. Permisos de Archivos: Asegúrate de que Nginx tenga permisos de lectura en los archivos de la aplicación.

sudo chown -R www-data:www-data /var/www/react_app/build

Conclusión

Configurar Nginx para servir una aplicación React es un proceso relativamente sencillo que implica crear la aplicación, instalar y configurar Nginx, y asegurarse de que los archivos de la aplicación estén en el lugar correcto. Siguiendo estos pasos, puedes asegurar que tu aplicación React esté bien servida y accesible a través de la web.

Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer