python - ocean - Configuración de nginx y supervisor en Ubuntu
nginx python (10)
Estoy usando la configuración de django-gunicorn-nginx siguiendo este tutorial http://ijcdigital.com/blog/django-gunicorn-and-nginx-setup/ Hasta la configuración de nginx, está funcionando. Luego instalé el supervisor, lo configuré y luego reinicié mi servidor y lo revisé, se muestra el 502 gateway incorrecto. Estoy usando Ubuntu 12.04 LTS
/etc/supervisor/conf.d/qlimp.conf
[program: qlimp]
directory = /home/nirmal/project/qlimp/qlimp.sh
user = nirmal
command = /home/nirmal/project/qlimp/qlimp.sh
stdout_logfile = /path/to/supervisor/log/file/logfile.log
stderr_logfile = /path/to/supervisor/log/file/error-logfile.log
Luego reinicié el supervisor y ejecuto este comando $ supervisorctl start qlimp
y $ supervisorctl start qlimp
este error
unix:///var/run/supervisor.sock no such file
¿Hay algún problema en la configuración de mi supervisor?
¡Gracias!
¿Estás seguro de que el supervisor está instalado y ejecutándose? ¿Hay un archivo de socket presente en /var/run/supervisor.sock
?
El error indica que supervisorctl
, la CLI de control, no puede alcanzar el socket UNIX para comunicarse con el supervisord
, el daemon.
También puede marcar /etc/supervisor/supervisord.conf
y ver si los valores de las secciones unix_http_server
y supervisorctl
coinciden.
Tenga en cuenta que este es un problema de nivel de Ubuntu, no es un problema con Python, Django o nginx y, como tal, esta pregunta probablemente pertenece a ServerFault.
Asegúrese de que en /etc/supervisor.conf
las dos secciones siguientes
[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
El error puede deberse a que no tienes privilegios. Tal vez pueda solucionar el error de esta manera, abra su terminal e ingrese vim /etc/supervisord.conf
para editar el archivo, busque las líneas
[unix_http_server]
; file = / tmp / supervisor.sock; (la ruta al archivo de socket)
; chmod = 0700; modo de archivo socket (predeterminado 0700)
y elimine el punto y coma en el inicio de la cadena ;file=/tmp/supervisor.sock
y ;chmod=0700
, reinicie su supervisor. Le sugiero que lo haga.
En Ubuntu 16+ parece ser causado por el cambio a systemd, esta solución alternativa puede solucionar los nuevos servidores:
# Make sure Supervisor comes up after a reboot.
$ sudo systemctl enable supervisor
# Bring Supervisor up right now.
$ sudo systemctl start supervisor
y luego verifique su estado de iconic.conf [Mi ejemplo] de supervisor
$ sudo supervisorctl status iconic
PD: Asegúrate de que gunicornio no tenga ningún problema mientras corre.
En mi caso, Supervisor no se estaba ejecutando. Para detectar el problema que corro:
sudo systemctl status supervisor.service
El problema era que tenía mis registros apuntando a un directorio no existente, así que solo tuve que crearlo.
Espero que ayude :)
He encontrado el mismo problema que usted y después de varias veces, aquí viene la solución:
Primero elimine la versión de supervisor de apt-get:
sudo apt-get remove supervisor
Mate el proceso del supervisor de back-end:
sudo ps -ef | grep supervisor
Luego, obtenga la versión más nueva (la versión apt-get fue 3.0a8):
sudo easy_install(pip install) supervisor==3.0b2
Echo el archivo de configuración (root premission):
echo_supervisord_conf > /etc/supervisord.conf
5. Iniciar supervisord:
sudo supervisord
6. Ingrese supervisorctl:
sudo supervisorctl
¡Se hizo todo! ¡Que te diviertas!
Prueba esto
cd /etc/supervisor
sudo supervisord
sudo supervisorctl restart all
Puedes hacer algo como esto:
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo service supervisor restart
Definitivamente es trabajo, prueba esto.
Que no haya un archivo de socket probablemente significa que el supervisor no se está ejecutando. Una razón por la que no se está ejecutando podría ser que su archivo qlimp.conf tenga algún tipo de error. Si haces una
sudo service supervisor start
puedes ver si este es el caso. Si el supervisor ya se está ejecutando, dirá. Y si detecta un error, generalmente le dará un mensaje de error más útil que supervisorctl.
touch /var/run/supervisor.sock
sudo supervisord -c /etc/supervisor/supervisord.conf
y después de supervisorctl reiniciar todo
si quieres escuchar el puerto supervisor
ps -ef | grep supervisord
si quieres matar el proceso
kill -s SIGTERM 2503