virginia logs elastic ec2 east cloudwatch aws linux nginx amazon-ec2 logfile

linux - elastic - nginx logs ubuntu



Nginx no puede escribir en access.log (3)

Cuando nginx se inicia, crea el archivo de registro "access.log" con un tamaño 0. Pero ningún registro está escrito en él. error.log funciona bien.

nginx.conf:

http { access_log /usr/local/webserver/nginx/logs/access.log combined; .... }

El archivo de registros es:

-rw-r--r-- 1 root root 0 Mar 4 00:54 access.log -rw-r--r-- 1 root root 3903 Mar 4 00:54 error.log

Estoy totalmente confundido. @ _ @

¿Es un problema de permiso?

Sin embargo, en la parte posterior de nginx.conf, en la sección del servidor {}, ¡access_log funciona! ¿Por qué la sección http {} no funciona?


Debe vincular el usuario y el grupo nginx a sus archivos de registro.

chown nginx:nginx access.log chown nginx:nginx error.log

¿Puedes publicar tu nginx.conf completo? Con pastebin por ejemplo?

EDITAR: en cada sección debe definir la palabra clave como "combinado"!


Dependiendo de su configuración, es probable que el proceso maestro nginx y los procesos de trabajo se ejecuten como usuarios diferentes.

Para ver usuarios y grupos para procesos nginx:

ps -eo "%U %G %a" | grep nginx root root nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf www-data www-data nginx: worker process

El usuario del proceso de trabajo necesita permiso de escritura para el archivo de registro.

Para ver los permisos de archivo de access.log:

ls -l /var/log/nginx/access.log -rw-r----- 1 www-data www-data 0 Apr 29 2012 /var/log/nginx/access.log

En este caso, el registro de acceso es propiedad del proceso de trabajo de nginx y tiene acceso de escritura.

Véase también nginx http_log_module docs.

Como un problema secundario, los registros de nginx pueden rotarse una vez que alcanzan un cierto tamaño por el cronjob logrotate. Cuando se crea el nuevo archivo de registro, debe crearse con el propietario, el grupo y los permisos para permitir que el proceso de trabajo nginx escriba en él.

Estas configuraciones de rotación de registros para nginx se definen en /etc/logrotate.d/nginx

Vea también la guía de rotación de registros para ubuntu .


Tuve un problema similar en el que no se escribía el archivo de registros de acceso, pero el archivo de registro de errores funcionaba bien. Los permisos también estaban bien para mí. Conseguí que se corrigiera forzando el proceso nginx para volver a cargar los archivos de registro usando

kill -USR1 `cat /var/run/nginx.pid`

donde /var/run/nginx.pid es la ruta al archivo PID nginx