En Linux, Supervisor es un sistema cliente/servidor que permite a los usuarios controlar numerosos procesos en un sistema operativo como UNIX. Los siguientes son los beneficios clave de Supervisor:
- Conveniencia: Escribir rc.d para todas las instancias de un solo proceso es un inconveniente. Los scripts Rc.d, de manera similar, no reinician automáticamente los procesos bloqueados. Sin embargo, Supervisor se puede configurar para reiniciar automáticamente los procesos cuando fallan.
- Precisión: En UNIX, con frecuencia es difícil obtener el estado activo/inactivo preciso de los procesos. Supervisor inicia los procesos como subprocesos, por lo que está al tanto del estado activo/inactivo de sus hijos. Esto es fácil de consultar para un usuario final.
En este tutorial, aprenderemos cómo instalar Supervisor y configurarlo para administrar el proceso Nginx en Ubuntu 20.04.
Requisitos
- Un nuevo Ubuntu 20.04 VPS en Atlantic.Net Cloud Platform.
- Se ha configurado una contraseña raíz en su servidor.
Paso 1:crear un servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Ubuntu 20.04 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor Ubuntu 20.04, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
apt-get update -y
Paso 2:Instalar Supervisor
apt-get install supervisor -y
Después de instalar Supervisor, puede verificar la versión instalada de Supervisor con el siguiente comando:
supervisord -v
Deberías obtener el siguiente resultado:
4.1.0
A continuación, verifique el estado del servicio de Supervisor con el siguiente comando:
systemctl status supervisor
Deberías obtener el siguiente resultado:
supervisor.service - Supervisor process control system for UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 13:31:42 UTC; 9s ago Docs: http://supervisord.org Main PID: 14419 (supervisord) Tasks: 1 (limit: 2353) Memory: 14.2M CGroup: /system.slice/supervisor.service └─14419 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
Paso 3:habilite la interfaz web del supervisor
Supervisor proporciona una interfaz basada en web para administrar todos los procesos, pero está deshabilitada de manera predeterminada. Puede habilitarlo editando el archivo /etc/supervisor/supervisord.conf.
nano /etc/supervisor/supervisord.conf
Agregue las siguientes líneas:
[inet_http_server] port=*:9001 username=admin password=admin
Guarde y cierre el archivo, luego reinicie el servicio de Supervisor para aplicar los cambios:
systemctl restart supervisor
Paso 4:administrar el proceso de Nginx con el supervisor
En esta sección, aprenderemos cómo controlar el proceso de Nginx con Supervisor.
Primero, instale el servidor Nginx con el siguiente comando:
apt-get install nginx -y
Después de instalar Nginx, deberá detener y deshabilitar el servicio de Nginx, ya que usaremos Supervisor para administrar el proceso de Nginx.
Puede detener y deshabilitar el servicio Nginx con el siguiente comando:
systemctl stop nginx systemctl disable nginx
A continuación, deberá crear un archivo de configuración independiente para cada servicio que desee administrar. Puede crear un archivo de configuración de Nginx con el siguiente comando:
nano /etc/supervisor/conf.d/nginx.conf
Agregue las siguientes líneas:
[program:nginx] command=/usr/sbin/nginx -g "daemon off;" autostart=true autorestart=true startretries=5 numprocs=1 startsecs=0 process_name=%(program_name)s_%(process_num)02d stderr_logfile=/var/log/supervisor/%(program_name)s_stderr.log stderr_logfile_maxbytes=10MB stdout_logfile=/var/log/supervisor/%(program_name)s_stdout.log stdout_logfile_maxbytes=10MB
Guarde y cierre el archivo cuando haya terminado. A continuación, dígale al supervisor que conozca la nueva configuración:
supervisorctl reread
Deberías obtener el siguiente resultado:
nginx: available
Luego, dígale al supervisor que inicie el servicio Nginx:
supervisorctl update
Deberías obtener el siguiente resultado:
nginx: added process group
Luego, verifique si Supervisor inició el servicio Nginx con el siguiente comando:
supervisorctl
Deberías obtener el siguiente resultado:
nginx:nginx_00 EN EJECUCIÓN pid 15717, tiempo de actividad 0:00:13
Si desea detener el servicio Nginx, ejecute el siguiente comando:
stop nginx:nginx_00
Salida:
nginx:nginx_00: stopped
Para volver a iniciar el servicio Nginx, ejecute el siguiente comando:
start nginx:nginx_00
Salida:
nginx:nginx_00: started
Ahora, salga del shell de Supervisor con el siguiente comando:
exit
También puede verificar el proceso de Nginx con el siguiente comando:
ps aux | grep nginx
Deberías obtener el siguiente resultado:
root 15721 0.0 0.4 57176 10064 ? S 14:14 0:00 nginx: master process /usr/sbin/nginx - g daemon off; www-data 15722 0.0 0.2 57828 5340 ? S 14:14 0:00 nginx: worker process www-data 15723 0.0 0.2 57828 5340 ? S 14:14 0:00 nginx: worker process
Paso 5:acceder a la interfaz web del supervisor
Ahora puede acceder a la interfaz web de Supervisor usando la URL http://your-server-ip:9001 . Se le pedirá que proporcione un nombre de usuario y una contraseña como se muestra a continuación:
Proporcione su nombre de usuario y contraseña de administrador que ha definido en la configuración, archivo y luego haga clic en Iniciar sesión botón. Debería ver la interfaz web de Supervisor en la siguiente página:
Conclusión
En esta guía, aprendió cómo instalar Supervisor y habilitar la interfaz web en Ubuntu 20.04. También aprendió a controlar el proceso de Nginx con Supervisor. ¡Intente controlar los procesos en su cuenta de alojamiento VPS de Linux con Atlantic.Net!