Contáctenos

info@serverion.com

Configuración de NGINX para DevOps: el truco de Serverion para implementaciones sin tiempo de inactividad

Configuración de NGINX para DevOps: el truco de Serverion para implementaciones sin tiempo de inactividad

Implementaciones sin tiempo de inactividad Significa actualizar su aplicación sin interrumpir el servicio, algo imprescindible para empresas donde incluso una breve interrupción puede costar millones. NGINX lo hace posible gracias a su modelo de proceso maestro-trabajador y señales inteligentes como USR2 (iniciar nuevos procesos) y HUP (Recargar configuración). Aquí está la clave:

  • Cómo funciona:NGINX cambia el tráfico de trabajadores antiguos a trabajadores actualizados sin perder conexiones.
  • Pasos clave:Utilice señales (USR2, HUP, etc.), configurar nginx.conf correctamente y validar los cambios antes de volver a cargar.
  • Técnicas:Combine NGINX con métodos como implementaciones azul-verde o Docker para obtener actualizaciones sin inconvenientes.
  • controles de salud:Asegúrese de que solo los servidores saludables manejen el tráfico, utilizando los controles de estado pasivos o activos de NGINX.

Con la configuración adecuada, puede mantener sus servicios funcionando sin problemas durante las actualizaciones, proteger los ingresos y mantener la confianza del cliente.

Conceptos básicos de NGINX para implementaciones sin tiempo de inactividad

NGINX

Explicación de la implementación sin tiempo de inactividad

NGINX utiliza un modelo maestro-trabajador para gestionar las actualizaciones sin interrumpir el servicio. El proceso maestro supervisa la configuración y el control, mientras que los procesos trabajadores gestionan las conexiones de los clientes. Esta configuración permite que el tráfico se transfiera sin problemas de los trabajadores antiguos a los nuevos durante las actualizaciones, garantizando un servicio ininterrumpido.

Gestión de conexiones NGINX

NGINX se basa en señales específicas para controlar los procesos durante las actualizaciones o los cambios de configuración:

  • USR2:Inicia nuevos procesos maestros y de trabajo.
  • CABRESTANTE:Detiene los procesos de trabajo antiguos sin problemas.
  • HUP:Recarga la configuración y reemplaza a los trabajadores.
  • ABANDONAR: Apaga el maestro y los trabajadores con gracia.

Al recargar, NGINX mueve el antiguo ID del proceso maestro a /ejecutar/nginx.pid.oldbin, escribe el nuevo ID del proceso maestro en /ejecutar/nginx.pid, y permite que los trabajadores antiguos completen solicitudes activas antes de apagarse.

Implementaciones de aplicaciones modernas: cómo usar NGINX y JFrog para…

JFrog

Configuración de NGINX para funcionamiento continuo

Para mantener las conexiones activas durante las recargas, aproveche la arquitectura maestro-trabajador de NGINX con las siguientes configuraciones.

Pasos clave para la configuración de NGINX

Encender multi_aceptación Para permitir que los trabajadores gestionen múltiples conexiones por evento. Aquí hay un ejemplo de configuración para nginx.conf:

procesos_de_trabajador automáticos; pid /run/nginx.pid; eventos { conexiones_de_trabajador 1024; multi_aceptación activada; } http { backend ascendente { servidor backend1.example.com:8080; servidor backend2.example.com:8080; keepalive 32; } servidor { escuchar 80; nombre_del_servidor ejemplo.com; ubicación / { contraseña_de_proxy http://backend; versión_de_proxy_http 1.1; encabezado_de_configuración_de_proxy Conexión ""; encabezado_de_configuración_de_proxy Host $host; encabezado_de_configuración_de_proxy X-Real-IP $ dirección_remota; } } } 

Recarga de configuración sin tiempo de inactividad

  1. Recargue los trabajadores actuales para aplicar los cambios:
    nginx -s recargar 
  2. Verifique el ID del proceso maestro actualizado:
    gato /ejecutar/nginx.pid 
  3. Realizar una actualización binaria sin detener el tráfico:
    matar -USR2 $(cat /run/nginx.pid) matar -WINCH $(cat /run/nginx.pid.oldbin) 

Estos pasos permiten que el tráfico se mueva sin problemas entre los trabajadores antiguos y los nuevos, garantizando un servicio ininterrumpido.

Métodos de implementación con NGINX

Puede utilizar NGINX para lograr implementaciones sin tiempo de inactividad aprovechando técnicas como configuraciones azul-verde o enfoques basados en contenedores.

Configuración de implementación azul-verde

Con NGINX, puede administrar el tráfico entre dos entornos, comúnmente conocidos como azul y verdeEstos entornos son idénticos, pero solo uno está activo a la vez. Así funciona:

  • Implemente la versión actualizada en el entorno inactivo (por ejemplo, verde).
  • Ejecute comprobaciones de estado para garantizar que la nueva versión funcione correctamente.
  • Una vez verificado, actualice el Configuración de NGINX para dirigir el tráfico al entorno actualizado.
  • Recargue la configuración utilizando el HUP señal para evitar perder cualquier conexión activa.

Este método garantiza una transición fluida sin interrupciones del servicio.

Integración de Docker y NGINX

Usar Docker con NGINX optimiza las implementaciones al mantener entornos consistentes tanto para la aplicación como para las capas de proxy. Así es como puedes lograr actualizaciones sin tiempo de inactividad:

  • Inicie el nuevo contenedor junto con el contenedor activo actual.
  • Realice controles de salud para confirmar que el nuevo contenedor esté listo.
  • Modifique la configuración ascendente de NGINX para incluir el nuevo contenedor.
  • Recargue la configuración con el HUP señal, permitiendo que los trabajadores antiguos terminen el procesamiento antes de salir.

Este enfoque garantiza un servicio ininterrumpido mientras se actualiza su aplicación.

Pruebas y verificación

Configurar comprobaciones de estado

Las comprobaciones de estado de NGINX ayudan a garantizar que solo los servidores funcionales gestionen el tráfico. Estas comprobaciones funcionan junto con la configuración ascendente y el enrutamiento azul-verde. NGINX ofrece dos tipos de comprobaciones de estado: pasivo (disponible en NGINX de código abierto) y activo (exclusivo para NGINX Plus).

Para realizar comprobaciones de estado pasivas en NGINX Open Source, configure su bloque ascendente de la siguiente manera:

backend ascendente { servidor backend1.serverion.com:8080 max_fails=3 fail_timeout=30s; servidor backend2.serverion.com:8080 max_fails=3 fail_timeout=30s; zona backend 64k; } 

Si está utilizando NGINX Plus, puede habilitar controles de estado activos agregando el chequeo de salud directiva junto con una fósforo bloquear:

ubicación / { proxy_pass http://backend; control_de_salud intervalo=5s fallas=3 pasa=2 obligatorio persistente; coincidencia control_de_salud { estado 200; encabezado Content-Type = application/json; cuerpo ~ '"estado":"UP"'; } } 

Asegúrese de validar estas configuraciones antes de volver a cargar NGINX.

Validar configuración

Compruebe siempre que la configuración de NGINX sea correcta antes de recargarla. Utilice el siguiente comando:

nginx -t -c /ruta/a/su/nginx.conf 

Fundamentos de la implementación sin tiempo de inactividad

Lograr implementaciones sin tiempo de inactividad depende de una configuración cuidadosa de NGINX y una planificación sólida de la infraestructura. Estos elementos trabajan en conjunto para garantizar que las actualizaciones se realicen sin interrupciones.

Estos son los factores clave para el éxito:

  • Control de procesos y validación de configuraciónAproveche al máximo la arquitectura de NGINX mientras cumple con protocolos de pruebas exhaustivos.
  • Estabilidad de la infraestructuraMantenga un rendimiento constante y una seguridad estricta durante todo el proceso de implementación.

Para obtener detalles sobre los controles de estado y los pasos de reversión, consulte Pruebas y verificación sección.

ServionLa plataforma de respalda estos esfuerzos con estabilidad y seguridad confiables. Su centros de datos globales Mantenga el rendimiento estable durante las actualizaciones y la protección DDoS incorporada garantiza que la seguridad permanezca intacta.

Empiece poco a poco, activando funciones en servicios no críticos. Aumente gradualmente la escala, manteniendo las pruebas periódicas, la supervisión minuciosa y planes de reversión claros como base de su estrategia.

Entradas de blog relacionadas

es_ES