Control en Tiempo de Ejecución#
Para iniciar Angie, utilice systemd con el siguiente comando:
$ sudo service angie start
Se recomienda comprobar antes la sintaxis de la configuración. He aquí cómo hacerlo:
$ sudo angie -t && sudo service angie start
Para recargar la configuración:
$ sudo angie -t && sudo service angie reload
Para detener Angie:
$ sudo service angie stop
Después de la instalación, ejecute el siguiente comando para asegurarse de que Angie está en funcionamiento:
$ curl localhost:80
Nota
Los métodos para ejecutar la versión de código abierto de Angie pueden variar en función del método de instalación.
Angie tiene un proceso maestro y varios procesos de trabajo. El proceso maestro se encarga de leer y evaluar la configuración y de mantener los procesos de trabajo. Los procesos de trabajo gestionan el procesamiento real de las peticiones. Angie utiliza un modelo basado en eventos y mecanismos dependientes del sistema operativo para distribuir eficazmente las peticiones entre los procesos de trabajo. El número de procesos de trabajo se define en el archivo de configuración y puede ser fijo para una configuración dada o ajustarse automáticamente en función del número de núcleos de CPU disponibles (consulte worker_processes).
Cuando está configurado, Angie también vaciará ciertas zonas de memoria compartida
(actualmente, Angie también puede controlarse mediante señales. Por defecto, el ID de proceso del
proceso maestro se escribe en el archivo Apagado rápido Apagado elegante Recargar configuración, actualizar zona horaria (solo para FreeBSD y Linux),
iniciar nuevos procesos de trabajo con la configuración actualizada,
apagar elegantemente los antiguos
procesos de trabajo Reabrir archivos de registro Actualizar el archivo ejecutable Apagado elegante de procesos de trabajo Puede enviar señales usando kill: También se pueden controlar procesos de trabajo individuales usando señales, aunque esto
es opcional. Las señales admitidas son: Apagado rápido Apagado elegante Reabrir archivos de registro Terminación anómala para depuración (requiere que debug_points esté
habilitado) Para que Angie vuelva a leer el archivo de configuración, debe enviarse una señal Angie rastrea los cambios de configuración para cada proceso. Los números de generación
comienzan en 1 cuando el servidor se inicia por primera vez. Estos números se incrementan con
cada recarga de configuración y son visibles en los títulos de procesos: Tras una recarga de configuración exitosa (independientemente de que haya cambios reales),
Angie incrementa el número de generación para los procesos que recibieron la nueva configuración: Si continúan operando procesos de trabajo de generaciones anteriores,
serán visibles de inmediato: Nota No confunda el número de generación de la configuración con un "número de proceso";
Angie no utiliza numeración continua de procesos por motivos prácticos. Para rotar archivos de registro, primero renómbrelos. Luego, envíe una señal Para actualizar el ejecutable del servidor, primero sustituya el archivo antiguo por el
nuevo. Luego, envíe una señal Tenga en cuenta que el antiguo proceso maestro no cierra sus sockets de escucha y puede
gestionarse para reiniciar sus procesos de trabajo si es necesario. Si el nuevo ejecutable no
funciona como se espera, puede tomar una de las siguientes acciones: Enviar la señal Enviar la señal Si el nuevo proceso maestro sale, el antiguo eliminará el sufijo Si la actualización es exitosa, envíe la señal Cuando está configurado, Angie también vaciará ciertas zonas de memoria compartida
(actualmente, Mostrar ayuda para los parámetros de línea de comandos y salir. Mostrar información auxiliar sobre el entorno de compilación y salir. Usar file como archivo de configuración en lugar del archivo predeterminado. Usar file como archivo de registro de errores en lugar del archivo predeterminado. El valor especial Aplicar directivas de configuración globales adicionales,
por ejemplo: Mostrar una lista de módulos incorporados ( Usar la ruta prefix especificada para Mostrar solo mensajes de error si se establece Enviar una señal al proceso maestro:
Probar el archivo de configuración y salir. Angie comprueba la
sintaxis de la configuración, incluyendo de forma recursiva los archivos mencionados en ella. Igual que Mostrar la versión de Angie y salir. Mostrar la versión de Angie, la versión del compilador, la hora de compilación
y los parámetros de compilación utilizados, y salir.keys_zone
en proxy_cache_path)
al disco antes de salir,
de modo que un nuevo proceso maestro pueda restaurarlas
con un rendimiento mejorado.
Si la restauración falla debido a un cambio en el tamaño de la zona,
incompatibilidad binaria u otras razones,
Angie registrará una alerta (failed to restore zone at address
)
y no utilizará el mecanismo de restauración de zonas.Uso de Señales#
/run/angie.pid
. Este
nombre de archivo puede cambiarse en tiempo de configuración o en angie.conf
mediante la
directiva pid. El proceso maestro admite las siguientes señales:TERM
, INT
QUIT
HUP
USR1
USR2
WINCH
$ sudo kill -QUIT $(cat /run/angie.pid)
TERM
, INT
QUIT
USR1
WINCH
Cambiar la Configuración#
HUP
al proceso maestro. El proceso maestro primero comprueba la validez de la sintaxis y luego intenta
aplicar la nueva configuración, lo que incluye abrir nuevos archivos de registro y sockets de
escucha. Si aplicar la nueva configuración falla, el proceso maestro revierte los cambios y
continúa operando con la configuración anterior. Si la aplicación tiene éxito, el proceso maestro
inicia nuevos procesos de trabajo y envía mensajes a los antiguos solicitando que se apaguen
elegantemente. Los antiguos procesos de trabajo cierran sus
sockets de escucha y continúan atendiendo a los clientes existentes.
Una vez servidos todos los clientes, los antiguos procesos de trabajo se apagan.$ sudo angie
$ ps aux | grep angie
angie: master process v1.10.2 #1 [angie]
angie: worker process #1
$ sudo kill -HUP $(cat /run/angie.pid)
$ ps aux | grep angie
angie: master process v1.10.2 #2 [angie]
angie: worker process #2
$ ps aux | grep angie
angie: worker process #1
angie: worker process #2
Rotación de Archivos de Registro#
USR1
al
proceso maestro. Este reabrirá todos los archivos de registro abiertos y los asignará al
usuario sin privilegios bajo el cual se ejecutan los procesos de trabajo. Tras reabrir los
archivos correctamente, el proceso maestro cierra todos los archivos abiertos y notifica a
los procesos de trabajo que reabran sus archivos de registro. Estos abrirán los nuevos
archivos y cerrarán los antiguos inmediatamente. Como resultado, los archivos antiguos quedan
disponibles casi de inmediato para el posprocesamiento, como la compresión.Actualización del Ejecutable en Vivo#
USR2
al proceso maestro. Este renombrará su archivo
actual con el ID de proceso añadiéndole el sufijo .oldbin
,
por ejemplo /usr/local/angie/logs/angie.pid.oldbin
,
y luego iniciará el nuevo ejecutable, que a su vez iniciará nuevos procesos de trabajo.HUP
al antiguo proceso maestro. Esto iniciará nuevos procesos de
trabajo sin volver a leer la configuración. Puede apagar todos los nuevos procesos
elegantemente enviando la señal QUIT
al nuevo
proceso maestro.TERM
al nuevo proceso maestro. Este enviará un mensaje a sus
procesos de trabajo solicitando que salgan inmediatamente. Si alguno no sale, envíe la
señal KILL
para forzarlo. Cuando el nuevo proceso maestro salga, el antiguo iniciará
automáticamente nuevos procesos de trabajo..oldbin
del nombre de
archivo con el ID de proceso.QUIT
al antiguo proceso maestro, y solo
quedarán los nuevos procesos.keys_zone
en proxy_cache_path)
al disco antes de actualizar,
de modo que un nuevo proceso maestro pueda restaurarlas
con un rendimiento mejorado.
Si la restauración falla debido a un cambio en el tamaño de la zona,
incompatibilidad binaria u otras razones,
Angie registrará una alerta (failed to restore zone at address
)
y no utilizará el mecanismo de restauración de zonas.Opciones de Línea de Comandos#
-?
, -h
--build-env
-c
file-e
filestderr
especifica la salida de error estándar.-g
directivesangie -g "pid /var/run/angie.pid; worker_processes
`sysctl -n hw.ncpu`;"
.-m
, -M
-m
) o incorporados y cargados
(-M
), y luego salir.-p
prefixangie
(el directorio donde se encuentran los
archivos del servidor; el valor predeterminado es /usr/local/angie/
).-q
-t
o -T
;
de lo contrario, no tiene efecto.-s
signalstop
, quit
, reopen
, reload
, etc.-t
-T
-t
, pero además muestra la configuración completa en la salida estándar
tras incluir recursivamente todos los archivos mencionados en la configuración.-v
-V