2012-06-27 7 views
7

Tengo un servidor que ejecuta Django/Nginx/uWSGI con uWSGI en modo emperador, y el registro de errores para él (el registro de errores de nivel de vasallo, no el registro de nivel de emperador) tiene un error de permisos continuo cada vez que genera un nuevo trabajador, así:uWSGI Registro del servidor ... permiso denegado para leer el archivo ... ¿qué archivo?

mar 26 jun 19:34:55 2012 - respawned uWSGI trabajador 2 (nuevo pid: 9334)

al abrir el archivo de error para la lectura: permiso denegado

Problema es, no sé qué archivo está teniendo problemas para abrir; no es el archivo de registro, obviamente, ya que lo estoy viendo y está escribiendo sin problemas. ¿Alguna forma de averiguarlo? Estoy ejecutando la versión de apt-get de uWSGI 1.0.3-debian a través de Upstart en Ubuntu 12.04. El sitio está funcionando con éxito, aparte de lo que parece ser una pérdida de memoria ... por lo tanto, estoy mirando el archivo de registro. Experimenté cambiando los permisos de todo el directorio/opt/para incluir al usuario uwsgiuser, sin ningún resultado. Estoy usando un socket TCP, por lo que los permisos no deberían ser un problema. ¿Es el caché? ¿Eso tiene sus propios permisos? ¿Si es así, donde?

My Upstart conf file 

description "uWSGI" start on runlevel [2345] stop on runlevel [06] respawn 

env UWSGI=/usr/bin/uwsgi env LOGTO=/var/log/uwsgi/emperor.log 

exec $UWSGI \ 
--master \ 
--emperor /etc/uwsgi/vassals \ 
--die-on-term \ 
--auto-procname \ 
--no-orphans \ 
--logto $LOGTO \ 
--logdate 

Mi Vassal archivo ini:

[uwsgi] 
# Variables 
base = /opt/env/mysiteenv 

# Generic Config 
uid = uwsgiuser 
gid = uwsgiuser 
socket = 127.0.0.1:5050 
master = true 
processes = 2 
reload-on-as = 128 
harakiri = 60 
harakiri-verbose = true 
auto-procname = true 
plugins = http,python 
cache = 2000 
home = %(base) 
pythonpath = %(base)/mysite 
module = wsgi 
logto = /opt/log/mysite/error.log 
logdate = true 
+0

Probablemente sea más probable que obtenga una respuesta útil en ServerFault. – Amber

Respuesta

8

La respuesta real a esta pregunta parece ser este error específico de Ubuntu:

https://bugs.launchpad.net/ubuntu/+source/libjpeg-turbo/+bug/1031718

Puede solucionar el problema poniendo las líneas

setuid uwsgiuser 
setgid uwsgiuser 

en su archivo de configuración recién llegado, y borrar la configuración uid y gid de la configuración uwsgi.

+2

Esto funcionó por completo; Muchas gracias. El error me estaba volviendo loco. – bkev

+0

¿Qué es el archivo de configuración upstart? –

+0

@uszywieloryba [Upstart] (http://upstart.ubuntu.com) es el reemplazo de init de Ubuntu. Ejecuta trabajos basados ​​en archivos en '/ etc/init' (entre otros lugares). – alastair

3

usted podría tratar de strace el proceso y ver lo que desencadena el mensaje de error, algo así como:

UWSGI=/usr/bin/uwsgi LOGTO=/var/log/uwsgi/emperor.log strace -f -o strace.log -etrace=open,write $UWSGI --master --emperor /etc/uwsgi/vassals --die-on-term --auto-procname --no-orphans --logto $LOGTO --logdate

Cuestiones relacionadas