Comment désactiver la journalisation Nginx?

27

J'ai ce qui suit dans le fichier de configuration

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;

Mais il continue de se connecter pour example.coml'hôte virtuel. Qu'est-ce que je fais mal?

user965363
la source
Qu'entendez-vous «principal» faire ici?
Evan Carroll
J'ai signalé cette question pour suppression, car la réponse la plus positive a trait à votre erreur de syntaxe. Cela n'a rien à voir avec la désactivation de la journalisation des erreurs. Il ne contient aucun message d'erreur consultable, et je ne sais pas ce que vous demandez ni pourquoi les réponses fournies ne résolvent pas votre problème.
Evan Carroll

Réponses:

31

Vous ;manquez après la directive server_name. access_loget offsont traités comme des noms de serveur supplémentaires.

rvs
la source
12
De plus, error_log off; ne désactive pas la journalisation des erreurs. Il enregistre simplement les erreurs dans un fichier nommé «off». Il n'y a aucun moyen de désactiver complètement la journalisation des erreurs, le plus proche que vous pouvez obtenir est error_log / dev / null crit; ce qui est presque la même chose, car aucun journal d'erreurs n'apparaîtra.
kolbyjack
6
En fait, faire access_log off;oblige nginx à écrire le journal dans le fichier appelé off. Ce n'est donc pas la bonne réponse.
user965363
4
En fait, c'est la bonne réponse. "Utiliser" off "comme seul paramètre efface toutes les directives access_log pour le niveau actuel": wiki.nginx.org/HttpLogModule#access_log . Ce n'est pas vrai pour error_log (comme ajouté par @kolbyjack), mais je crois que la question concernait l'accès, pas le journal des erreurs. Il est possible que certaines versions très anciennes de nginx ne le prennent pas en charge.
RVS
Y a-t-il un avantage à utiliser offau lieu de /dev/null? Si offcertaines versions de Nginx écrivent dans un fichier nommé off, cela /dev/nullsemble être une solution plus universelle.
Joe Mornin
20

Bien sûr, vous pouvez désactiver complètement la journalisation. Pointez simplement les fichiers journaux sur / dev / null et terminez. ;)

access_log  /dev/null;
error_log /dev/null;
Franz Bettag
la source
3
J'utilise aussi celui-ci; /dev/nullest une véritable destination; tandis que "off" est un fichier dans un répertoire
edoceo
4
Ce n'est pas la façon officielle de le faire. Utiliser 'off' est la bonne façon.
user1751825
Je l'ai créé / var / null et maintenant il commence à enregistrer les journaux dans un fichier nommé "null" dans le répertoire var. Doit-il être "/ dev / null" uniquement?
Gaurav
13

vous pouvez désactiver access_logen utilisant

access_log off;

mais si vous souhaitez désactiver error_log, n'utilisez pas l'option error_log dans votre conf.

Mustafa Özgür
la source
2
Comment cela ajoute-t-il aux réponses précédentes?
Dave M
1
Cuz, la réponse précédente est inutile! Ne l'utilisez pas
Mustafa Özgür
2
Si la configuration ne contient pas d'option error_log, nginx prend par défaut la valeur "error_log logs / error.log error": nginx.org/en/docs/ngx_core_module.html#error_log
Julian Ladisch
ouais mec, c'est vrai. donc, nous devrions / dev / null ou autre chose? quelle est votre suggestion?
Mustafa Özgür
Cette réponse est erronée car cela créera un fichier journal '/ usr / share / nginx / off'
DanielKhan
1

Cela devrait être assez simple, vous pouvez commenter les lignes de journal

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;

et si vous obtenez des erreurs de critique, vous devez le faire comme ceci: ´error_log / dev / null crit; ´ il en sera ainsi:

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
la source
N'utilisez pas «off». Comme mentionné ci-dessous, cela créera un fichier journal appelé «off» dans le répertoire personnel de nginx.
DanielKhan
0

Basé sur la journalisation conditionnelle dans le post Nginx mais au lieu d'utiliser une variable pour déterminer la journalisation de la demande, en utilisant simplement une valeur 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
la source