¿Cómo deshabilitar el registro de Nginx?

27

Tengo lo siguiente en el archivo de configuración

server {
    listen       80;
    server_name  _;
    access_log  /var/log/nginx/access.log  main;
  ...

server {
    listen       80;
    server_name  example.com
    access_log  off;
    error_log off;

Pero todavía sigue registrando para example.comel host virtual. ¿Qué estoy haciendo mal?

usuario965363
fuente
¿Qué piensa hacer "principal" aquí?
Evan Carroll
Marqué esta pregunta para su eliminación, porque la respuesta más votada tiene que ver con su error de sintaxis. No tiene nada que ver con desactivar el registro de errores. No tiene mensajes de error de búsqueda, y no estoy seguro de lo que está preguntando o por qué las respuestas proporcionadas no resuelven su problema.
Evan Carroll

Respuestas:

31

Falta ;después de la directiva nombre_servidor. access_logy offestán siendo tratados como nombres de servidor adicionales.

rvs
fuente
12
Además, error_log off; no desactiva el registro de errores. Simplemente registra errores en un archivo llamado 'off'. No hay forma de deshabilitar completamente el registro de errores, lo más cercano que puede obtener es error_log / dev / null crit; que es casi lo mismo, ya que no aparecerá ningún registro de errores.
kolbyjack
66
En realidad, al hacer esto access_log off;, nginx escribe el registro en el archivo llamado off. Entonces esta no es la respuesta correcta.
user965363
44
En realidad, esta es la respuesta correcta. "Usar" off "como el único parámetro borra todas las directivas de access_log para el nivel actual": wiki.nginx.org/HttpLogModule#access_log . No es cierto para error_log (como lo agregó @kolbyjack), pero creo que la pregunta era sobre el acceso, no sobre el registro de errores. Es posible que algunas versiones muy antiguas de nginx no lo admitan.
rvs
¿Hay alguna ventaja de usar en offlugar de /dev/null? Si offhace que algunas versiones de Nginx escriban en un archivo llamado off, /dev/nullparece una solución más universal.
Joe Mornin
20

Por supuesto, puede deshabilitar completamente el registro. Simplemente apunte los archivos de registro a / dev / null y listo. ;)

access_log  /dev/null;
error_log /dev/null;
Franz Bettag
fuente
3
Yo también uso este; /dev/nulles un destino real; mientras que "off" es un archivo en algún directorio
edoceo
44
Esta no es la forma oficial recomendada para hacerlo. Usar 'off' es la forma correcta.
user1751825
Lo hice / var / null y ahora comienza a guardar registros en el archivo llamado "null" en el directorio var. ¿Debería ser solo "/ dev / null"?
Gaurav
13

puede deshabilitar access_logusando

access_log off;

pero si desea deshabilitar error_log, simplemente no use la opción error_log en su conf.

Mustafa Özgür
fuente
2
¿Cómo se agrega esto a las respuestas anteriores?
Dave M
1
¡Porque la respuesta anterior es inútil! No uses eso
Mustafa Özgür
2
Si la configuración no contiene una opción de error_log, nginx tiene como valor predeterminado "error_log logs / error.log error": nginx.org/en/docs/ngx_core_module.html#error_log
Julian Ladisch
Sí hombre, es cierto. entonces, deberíamos / dev / null o algo más? cual es tu sugerencia
Mustafa Özgür
Esta respuesta es incorrecta ya que esto creará un archivo de registro '/ usr / share / nginx / off'
DanielKhan
1

Debería ser bastante simple, podrías comentar las líneas de registro

server {
    listen       80;
    server_name  _;
    #access_log  /var/log/nginx/access.log  main;
  ...

server {
    listen       80;
    server_name  example.com
    #access_log  off;
    #error_log off;

y si obtiene errores críticos, debe hacerlo así: 'error_log / dev / null crit;' entonces será:

server {
    listen       80;
    server_name  _;
    access_log  /dev/null crit;
  ...

server {
    listen       80;
    server_name  example.com
    access_log  /dev/null crit;
    error_log /dev/null crit;
Daniel Guldberg Aaes
fuente
No uses 'off'. Como se menciona a continuación, esto creará un archivo de registro llamado 'off' en el directorio de inicio de nginx.
DanielKhan
0

Basado en el registro condicional en la publicación de Nginx, pero en lugar de usar una variable para determinar al registrar la solicitud, simplemente usando un valor constante de 0.

server {
listen       80;
server_name  _;
access_log  /var/log/nginx/access.log  main;
}

server {
listen       80;
server_name  example.com
access_log  /var/log/nginx/access.log if=0;
error_log /var/log/nginx/error.log if=0;
}
Aaron
fuente