NGINX
Guía paso a paso para asegurar su despliegue de LibreChat con Nginx como proxy inverso y HTTPS
Esta guía cubre los pasos esenciales para asegurar su despliegue de LibreChat con un certificado SSL/TLS para HTTPS, configurar Nginx como proxy inverso y configurar su dominio.
Requisitos previos
- Un servidor en la nube (por ejemplo, AWS, Google Cloud, Azure, Digital Ocean).
- Un nombre de dominio registrado.
- Acceso por terminal a su servidor en la nube.
- Node.js
v24.16.0y npmv11.16.0si ejecutas LibreChat directamente en el host.
Configuración inicial
Apuntando su dominio a su servidor
Antes de proceder con la adquisición del certificado, apunte su dominio a la dirección IP de su servidor en la nube. Este paso es fundamental y debe preceder a la configuración del certificado SSL debido al tiempo que los registros DNS pueden requerir para propagarse globalmente.
- Inicia sesión en el panel de control de tu registrador de dominios.
- Navega a la configuración de DNS.
- Cree un
A recordque apunte su dominio a la dirección IP de su servidor en la nube. - Espera a que los cambios de DNS se propaguen globalmente (puedes verificarlo haciendo ping a tu dominio:
ping your_domain.com).
Obtener un certificado SSL/TLS
Para proteger su aplicación LibreChat con HTTPS, necesitará un certificado SSL/TLS. Let's Encrypt ofrece certificados gratuitos:
-
Instalar Certbot:
- Para Ubuntu:
sudo apt-get install certbot python3-certbot-nginx - Para CentOS:
sudo yum install certbot python2-certbot-nginx
- Para Ubuntu:
-
Obtenga el certificado:
- Ejecute
sudo certbot --nginxpara obtener e instalar el certificado automáticamente para Nginx. - Siga las instrucciones en pantalla. Certbot le solicitará información y completará el proceso de validación.
- Una vez completado con éxito, Certbot almacenará sus archivos de certificado.
- Ejecute
Configurar Nginx como proxy inverso
Nginx actúa como un proxy inverso, reenviando las solicitudes del cliente a su aplicación LibreChat. Existen dos opciones de despliegue:
Opción A: Usar el deploy-compose.yml de Docker Compose (Recomendado)
El archivo deploy-compose.yml incluye un contenedor Nginx y utiliza el archivo client/nginx.conf para la configuración de Nginx. Sin embargo, dado que sudo certbot --nginx extrae el certificado a la configuración del host, es necesario duplicar el certificado en los contenedores Docker.
- Actualiza
client/nginx.confcon tu dominio y las rutas de tus certificados. - Actualice
deploy-compose.ymlen la secciónclientpara montar los archivos de certificado desde el host:
- Detenga cualquier instancia en ejecución:
npm run stop:deployed - Confirma los cambios en una nueva rama de Git.
- Rebase la instancia desplegada:
npm run rebase:deployed
Opción B: Despliegue basado en host sin Docker
Si no estás utilizando Docker, puedes instalar y configurar Nginx directamente en el host:
-
Instalar Nginx:
- Ubuntu:
sudo apt-get install nginx - CentOS:
sudo yum install nginx
- Ubuntu:
-
Inicie Nginx:
sudo systemctl start nginx -
Abra el archivo de configuración de Nginx:
sudo nano /etc/nginx/sites-available/default -
Reemplace el contenido del archivo con lo siguiente, asegurándose de reemplazar
your_domain.comcon su dominio yapp_portcon el puerto de su aplicación:
- Compruebe la configuración de Nginx:
sudo nginx -t - Recargar Nginx:
sudo systemctl reload nginx
Ejecutar la aplicación
- Navega al directorio de tu aplicación:
- Inicie su aplicación usando Docker Compose:
Renovación de certificados al usar nginx
Si configuraste nginx usando la Opción A recomendada anteriormente, sigue estos pasos para renovar los certificados:
- Navega al directorio de tu aplicación
- Detenga sus contenedores de Docker en ejecución
- renovar certificados
- Reinicie su aplicación
Nota: certbot podría reiniciar el nginx del host. Puedes detenerlo con sudo pkill nginx
Web Application Firewall
Nginx puede configurarse para actuar como un firewall de aplicaciones web (WAF) aprovechando el OWASP Core Rule Set (CRS), el cual proporciona un conjunto robusto de reglas para proteger contra vulnerabilidades y ataques comunes en aplicaciones web. El uso de OWASP CRS con Nginx puede mejorar la seguridad de su despliegue de LibreChat al añadir una capa adicional de protección.
-
Instalar OWASP CRS:
- Ubuntu:
sudo apt-get install nginx-modsecurity-crs
- Ubuntu:
-
Habilitar ModSecurity en Nginx:
-
Abra su archivo de configuración de Nginx (por ejemplo,
/etc/nginx/nginx.conf). -
Agregue las siguientes líneas dentro del bloque
http:
-
-
Configurar OWASP CRS:
- El paquete OWASP CRS normalmente incluye un archivo de configuración (por ejemplo,
/etc/nginx/modsecurity.d/nginx-modsecurity.conf) donde puede ajustar varias configuraciones y conjuntos de reglas según sus necesidades.
- El paquete OWASP CRS normalmente incluye un archivo de configuración (por ejemplo,
-
Recargar Nginx:
sudo systemctl reload nginx
Al habilitar OWASP CRS en su configuración de Nginx, puede aprovechar el conjunto integral de reglas proporcionado por el proyecto para detectar y mitigar diversas vulnerabilidades y ataques de aplicaciones web, tales como inyección SQL, cross-site scripting (XSS), inclusión remota de archivos y más.
Almacenamiento en caché y compresión de archivos estáticos
LibreChat ahora admite de forma nativa el almacenamiento en caché y la compresión de archivos estáticos. Si está utilizando NGINX para gestionar la compresión, debería desactivar la compresión en LibreChat para evitar un procesamiento redundante. Puede hacerlo configurando la variable de entorno DISABLE_COMPRESSION a true en su configuración de LibreChat.
Esto evitará que LibreChat comprima archivos estáticos, permitiendo que NGINX gestione la compresión de manera más eficiente.
Para obtener más información sobre el manejo de archivos estáticos en LibreChat, incluyendo las opciones de caché, consulte la documentación de Static File Handling.
¿Qué te parece esta guía?