Nginx günlüğü nasıl devre dışı bırakılır?


27

Config dosyasında aşağıdakiler var

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;

Ancak hala example.comsanal ana bilgisayar için günlük tutmaya devam ediyor . Neyi yanlış yapıyorum?


Burada ne yapmayı düşünüyorsun?
Evan Carroll

Bu soruyu kaldırma için işaretledim, çünkü en çok oy alan cevap sözdizimi hatanızla ilgili. Hata günlüğü kapatma ile ilgisi yoktur. Aranabilir bir hata mesajı yok ve ne sorduğunuzu veya verilen cevapların neden probleminizi çözmediğinden emin değilim.
Evan Carroll

Yanıtlar:


31

Sen eksik ;sunucu_adi yönergesi sonra. access_logve offek sunucu_adı olarak kabul ediliyor.


12
Ayrıca, error_log kapalı; hata günlüğünü kapatmaz. Sadece 'off' adlı bir dosyaya hataları kaydeder. Hata günlüğünü tamamen devre dışı bırakmanın bir yolu yok, alabileceğiniz en yakın şey error_log / dev / null crit; Bu neredeyse aynı şeydir, çünkü hiçbir hata günlüğü görünmez.
kolbyjack

6
Aslında, access_log off;nginx'in günlüğü çağrılan dosyaya yazmasına neden olur off. Yani bu doğru cevap değil.
user965363

4
Aslında bu doğru cevap. "Off" un sadece parametre olarak kullanılması, geçerli seviye için tüm access_log yönergelerini temizler ": wiki.nginx.org/HttpLogModule#access_log . Error_log (@kolbyjack tarafından eklendiği gibi) için doğru değildir, ancak sorunun erişim günlüğü ile ilgili olduğuna inanıyorum. Nginx'in çok eski sürümlerinin bazıları bunu desteklemiyor olabilir.
rvs

Kullanmanın bir avantajı var mıdır offyerine /dev/null? offNginx'in bazı sürümlerinin adlı bir dosyaya yazmasına neden olursa off, /dev/nulldaha evrensel bir çözüm gibi görünüyor.
Joe Mornin,

20

Tabii ki kayıt işlemini tamamen devre dışı bırakabilirsiniz. Günlük dosyalarını / dev / null dizinine getirin ve bitirin. ;)

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

3
Bunu da kullanıyorum; /dev/nullgerçek bir varış noktasıdır; "off" bir dizinde bir dosya iken
edoceo

4
Bu resmi olarak resmi bir yol değil. 'Off' kullanmak doğru yoldur.
user1751825

Ben / var / null yaptım ve şimdi var dizininde "null" adlı dosyadaki günlükleri kaydetmeye başladı. Sadece "/ dev / null" olmalı mı?
Gaurav

13

access_logkullanarak devre dışı bırakabilirsiniz

access_log off;

ancak error_log’u devre dışı bırakmak istiyorsanız, conf'inizde error_log seçeneğini kullanmayın.


2
Bu önceki cevaplara nasıl eklenir?
Dave M,

1
Cuz, önceki cevap kullanışsız! Bunu kullanma
Mustafa Özgür

2
Eğer yapılandırma bir error_log seçeneği içermiyorsa, nginx varsayılan olarak "error_log logs / error.log error" olarak değişir
Julian Ladisch

evet dostum, bu doğru. öyleyse / dev / null ya da başka bir şey mi yapmalıyız? önerin nedir
Mustafa Özgür

Bu cevap '/ usr / share / nginx / off' log dosyası oluşturacağından yanlış.
DanielKhan

1

Oldukça basit olmalı, log satırlarını yorumlayabilirsiniz.

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;

ve eğer bir kritik hata alırsanız şöyle yapmalısınız: “` terör_log / dev / null crit;

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;

'Off' kullanmayın. Aşağıda belirtildiği gibi, bu, nginx'in home dizininde 'off' adında bir günlük dosyası oluşturacaktır.
DanielKhan

0

Nginx gönderimindeki koşullu günlük kaydı temelinde, ancak isteğin günlüğe kaydedilmesini belirlemek için bir değişken kullanmak yerine, yalnızca 0 sabit bir değer kullanarak.

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;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.