Blogchevron_rightSunucu Yönetimichevron_rightNginx Hata Yönetimi ve Loglama Rehberi

Nginx Hata Yönetimi ve Loglama Rehberi

S
Serversium
calendar_today22 Haziran 2026
schedule5 dk okuma
Nginx Hata Yönetimi ve Loglama Rehberi

Nginx Üzerinde Gelişmiş Hata Yönetimi ve Loglama Nedir?

Nginx, dünya genelinde en popüler web sunucularından biri olarak milyonlarca web sitesine hizmet vermektedir. Gelişmiş hata yönetimi ve loglama, Nginx'in güvenilir ve performanslı çalışmasının temel taşlarından biridir. Doğru yapılandırılmış bir log sistemi, Nginx virtual host yapılandırması ile birlikte sunucu performansını izlemek, güvenlik tehditlerini tespit etmek ve hata kaynaklarını hızlıca belirlemek için kritik öneme sahiptir.

Araştırmalara göre, web sunucularının %40'ından fazlası Nginx kullanmaktadır ve bu oran her yıl artış göstermektedir. Etkili log yönetimi olmadan, sunucu sorunlarını tespit etmek neredeyse imkansız hale gelir.

Nginx Error Log Yapılandırması

Nginx hata logları, sunucu çalışması sırasında oluşan tüm hataları, uyarıları ve kritik olayları kaydeder. Bu loglar, sorun giderme sürecinin ilk adımıdır.

Temel Error Log Direktifleri

Error log yapılandırması için kullanılan temel direktiflere bakalım:

error_log /var/log/nginx/error.log warn;
error_log /var/log/nginx/error.log notice;
error_log /var/log/nginx/error.log error;
error_log /var/log/nginx/error.log crit;
error_log /var/log/nginx/error.log alert;
error_log /var/log/nginx/error.log emerg;

Log seviyeleri, öncelik sırasına göre düzenlenmiştir. En düşük seviye debug, en yüksek seviye ise emerg'dir. Üretim ortamlarında genellikle warn veya error seviyesi tercih edilir.

HTTP Durum Kodları ve Anlamları

Nginx'in ürettiği hata kodlarını anlamak, hata yönetiminin temelidir:

Durum Kodu Anlamı Çözüm Önerisi
400 Bad Request - Geçersiz istek İstek formatını kontrol edin
401 Unauthorized - Yetkisiz erişim Kimlik doğrulama ayarlarını gözden geçirin
403 Forbidden - Erişim engellendi Dosya izinlerini kontrol edin
404 Not Found - Dosya bulunamadı Dosya yolunu doğrulayın
500 Internal Server Error - Sunucu hatası Sunucu konfigürasyonunu inceleyin
502 Bad Gateway Arka uç servislerini kontrol edin
503 Service Unavailable Sunucu kaynaklarını artırın

Nginx Access Log Yapılandırması

Access log, her HTTP isteğinin detaylı kaydını tutar. Bu loglar, trafik analizi, güvenlik izleme ve performans optimizasyonu için vazgeçilmezdir.

Access Log Format Tanımlama

Özel log formatları oluşturmak için log_format direktifi kullanılır:

log_format main '$remote_addr - $remote_user [$time_local] '
                '"$request" $status $body_bytes_sent '
                '"$http_referer" "$http_user_agent" '
                '$request_time $upstream_response_time';

access_log /var/log/nginx/access.log main;

JSON Formatında Loglama

Modern log yönetim sistemleri için JSON formatı idealdir:

log_format json_combined escape=json
    '{'
    '"time_local":"$time_local",'
    '"remote_addr":"$remote_addr",'
    '"remote_user":"$remote_user",'
    '"request":"$request",'
    '"status": "$status",'
    '"body_bytes_sent":"$body_bytes_sent",'
    '"request_time":"$request_time",'
    '"http_referer":"$http_referer",'
    '"http_user_agent":"$http_user_agent"'
    '}';

access_log /var/log/nginx/access.json json_combined;

Özel Hata Sayfaları Oluşturma

Kullanıcı deneyimini iyileştirmek ve profesyonel bir görünüm için özel hata sayfaları oluşturulmalıdır.

Hata Sayfası Yapılandırması

server {
    listen 80;
    server_name example.com;

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;

    location = /404.html {
        internal;
        root /var/www/html;
    }

    location = /50x.html {
        internal;
        root /var/www/html;
    }
}

Birden Fazla Hata Kodu için Yönlendirme

error_page 403 404 500 502 503 504 /error.html;
location = /error.html {
    root /var/www/html;
    internal;
}

Log Rotasyonu ve Yönetimi

Log dosyaları zamanla büyük boyutlara ulaşabilir. Logrotate kullanarak otomatik rotasyon yapılandırmak önemlidir.

Logrotate Yapılandırması

/var/log/nginx/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

Bu yapılandırma, logları günlük olarak döndürür, 14 günlük geçmişi saklar ve eski logları sıkıştırır.

Manuel Log Temizleme Komutları

# Belirli bir boyutun üzerindeki logları temizle
truncate -s 0 /var/log/nginx/error.log

# 7 günden eski logları sil
find /var/log/nginx -name "*.log" -mtime +7 -delete

# Log dosyasını sıfırla
> /var/log/nginx/access.log

Koşullu Loglama ve Filtreleme

Bazı isteklerin loglanmasını engellemek veya farklı log dosyalarına yönlendirmek için koşullu loglama kullanılabilir.

İp Adresine Göre Filtreleme

map $remote_addr $loggable {
    ~^192\.168\.1\.100 0;
    ~^10\.0\.0\.50 0;
    default 1;
}

access_log /var/log/nginx/access.log combined if=$loggable;

Durum Koduna Göre Loglama

map $status $log_status {
    ~^2\d\d 1;
    ~^3\d\d 1;
    default 0;
}

access_log /var/log/nginx/success.log combined if=$log_status;

Güvenlik ve İzleme En İyi Uygulamaları

Sunucu güvenliği için gelişmiş loglama teknikleri uygulamak kritik öneme sahiptir.

DDOS ve Bot Koruma için Loglama

Nginx rate limiting ile birlikte gelişmiş loglama, saldırıları tespit etmek için kullanılır:

http {
    log_format attack '$remote_addr - $remote_user [$time_local] '
                      '$request $status $body_bytes_sent '
                      '"$http_referer" "$http_user_agent" '
                      'Rate: $limit_req_status';

    limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s;
    limit_req_log_level warn;

    server {
        location / {
            limit_req zone=req_limit burst=20 nodelay;
            access_log /var/log/nginx/attack.log attack;
        }
    }
}

Birlikte Kullanılan Araçlar

Araç Kullanım Amacı Özellik
ELK Stack Log analizi Görselleştirme, arama
Graylog Merkezi log yönetimi Uyarı sistemi
Fluentd Log toplama Gerçek zamanlı işleme
GoAccess Terminal tabanlı analiz Hızlı görünüm

Sık Yapılan Hatalar ve Çözümleri

Log Dosyalarının Büyümesi

Log dosyalarının diski doldurmasını önlemek için:

  1. Logrotate yapılandırmasını etkinleştirin
  2. Uygunsuz istekleri filtreleyin
  3. Debug modunu üretimde kapatın
  4. Log seviyesini uygun şekilde ayarlayın

Eksik Log İzni

# Nginx'in log yazma izinlerini kontrol edin
ls -la /var/log/nginx/

# İzinleri düzeltin
chown -R www-data:www-data /var/log/nginx
chmod 755 /var/log/nginx

Hata Kodu Yönlendirme Sorunları

Özel hata sayfalarının çalışmaması durumunda, 301 ve 302 yönlendirme kurallarını kontrol edin ve doğru yapılandırıldığından emin olun.

Sonuç ve Öneriler

Nginx hata yönetimi ve loglama, sunucu güvenilirliği ve performansı için temel bileşenlerdir. Doğru yapılandırılmış bir log sistemi, bulut sunucu altyapınızda sorunları hızlıca tespit etmenizi ve çözmenizi sağlar.

Özetle, etkili bir Nginx loglama stratejisi için: uygun log seviyesi seçimi, otomatik log rotasyonu, özel hata sayfaları oluşturma, koşullu loglama ve merkezi log yönetim araçlarının kullanılması önerilir. Bu uygulamalar, sunucu altyapınızın sağlığını izlemek ve olası sorunları önceden tespit etmek için kritik öneme sahiptir.

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward