Come disabilitare la registrazione di Nginx?


27

Ho il seguente nel file di configurazione

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;

Ma continua a registrare per example.coml'host virtuale. Che cosa sto facendo di sbagliato?


Cosa intendi fare "principale" qui?
Evan Carroll,

Ho segnalato questa domanda per la rimozione, perché la risposta più votata ha a che fare con il tuo errore di sintassi. Non ha nulla a che fare con la disattivazione della registrazione degli errori. Non ha messaggi di errore ricercabili e non sono sicuro di cosa tu stia chiedendo o perché le risposte fornite non risolvano il tuo problema.
Evan Carroll,

Risposte:


31

Manca ;dopo la direttiva server_name. access_loge offvengono trattati come nomi_server aggiuntivi.


12
Inoltre, error_log off; non disattiva la registrazione degli errori. Registra semplicemente gli errori in un file chiamato 'off'. Non c'è modo di disabilitare completamente la registrazione degli errori, il più vicino che puoi ottenere è error_log / dev / null crit; che è quasi la stessa cosa, poiché non verrà visualizzato alcun registro degli errori.
kolbyjack,

6
In realtà, facendo access_log off;causa nginx per scrivere il registro nel file chiamato off. Quindi questa non è la risposta giusta.
user965363,

4
In realtà, questa è la risposta giusta. "Uso di" off "come unico parametro cancella tutte le direttive access_log per il livello corrente": wiki.nginx.org/HttpLogModule#access_log . Non è vero per error_log (come aggiunto da @kolbyjack), ma credo che la domanda riguardasse l'accesso, non il registro degli errori. È possibile che alcune versioni molto vecchie di nginx non lo supportino.
camper

C'è un vantaggio nell'usare offinvece di /dev/null? Se offcausa alcune versioni di Nginx che scrivono in un file chiamato off, allora /dev/nullsembra una soluzione più universale.
Joe Mornin,

20

Ovviamente puoi disabilitare completamente la registrazione. Basta puntare i file di log su / dev / null ed essere fatto. ;)

access_log  /dev/null;
error_log /dev/null;

3
Uso anche questo; /dev/nullè una vera destinazione; mentre "off" è un file in qualche directory
edoceo,

4
Questo non è il modo consigliato ufficiale per farlo. L'uso di "off" è il modo corretto.
user1751825

L'ho creato / var / null e ora inizia a salvare i registri nel file denominato "null" nella directory var. Dovrebbe essere solo "/ dev / null"?
Gaurav,

13

puoi disabilitare access_logusando

access_log off;

ma se vuoi disabilitare error_log, non usare l'opzione error_log nella tua conf.


2
In che modo questo si aggiunge alle risposte precedenti?
Dave M,

1
Perchè la risposta precedente è inutile! Non usarlo
Mustafa Özgür

2
Se la configurazione non contiene un'opzione error_log, nginx imposta automaticamente "error_log logs / error.log error": nginx.org/en/docs/ngx_core_module.html#error_log
Julian Ladisch

sì amico, esatto. quindi, dovremmo / dev / null o qualcos'altro? qual è il tuo suggerimento?
Mustafa Özgür

Questa risposta è errata poiché creerà un file di registro "/ usr / share / nginx / off"
DanielKhan,

1

Dovrebbe essere piuttosto semplice, puoi commentare le righe del log

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;

e se ricevi un errore crit dovresti farlo in questo modo: ´error_log / dev / null crit; ´ quindi sarà:

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;

Non usare "off". Come menzionato di seguito, questo creerà un file di registro chiamato 'off' nella home directory di nginx.
DanielKhan,

0

Basato sulla registrazione condizionale nel post Nginx ma invece di usare una variabile per determinare la registrazione della richiesta, usando solo un valore costante di 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;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.