Blogchevron_rightSunucu Yönetimichevron_rightNginx Rate Limiting ile Bot Saldırılarını Önleme

Nginx Rate Limiting ile Bot Saldırılarını Önleme

S
Serversium
calendar_today8 Mayıs 2026
schedule5 dk okuma
Nginx Rate Limiting ile Bot Saldırılarını Önleme

Nginx Hız Sınırlama (Rate Limiting) ile Bot Saldırılarını Önleme

Nginx, dünya genelinde en popüler web sunucularından biri olarak trafiği yönetmek için güçlü araçlar sunar. Bu araçların en etkililerinden biri rate limiting (hız sınırlama) özelliğidir. Araştırmalara göre, internet trafiğinin yaklaşık %40'ı botlardan oluşmaktadır ve bu oran her yıl artış göstermektedir. Nginx'in yerleşik rate limiting modülü, sunucu güvenliği açısından kritik bir kalkan görevi görür.

Hız Sınırlama Nedir ve Neden Gereklidir?

Hız sınırlama, belirli bir süre içinde bir IP adresinden gelen istek sayısını sınırlamaya dayanan bir güvenlik mekanizmasıdır. Bu mekanizma, kötü niyetli botların sunucunuza aşırı yük bindirmesini engeller ve SEO performansınızı korur.

Bot Saldırılarının Tipik Özellikleri

  • Normal kullanıcılardan 10-100 kat fazla istek gönderimi
  • Gece geç saatlerde veya tatil dönemlerinde artan aktivite
  • Bilinen zararlı IP aralıklarından gelen tekrar eden istekler
  • Oturum açma sayfalarına yönelik brute force girişimleri

Nginx Rate Limiting Yapılandırması

1. Temel Rate Limit Ayarları

Nginx'de hız sınırlama için ngx_http_limit_req_module modülü kullanılır. Bu modül varsayılan olarak Nginx kurulumunda aktif gelir.

http {
    # Bellek bölgesi tanımlama - istek sayısını izlemek için
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
    
    server {
        location /api/ {
            limit_req zone=mylimit burst=20 nodelay;
            
            proxy_pass http://backend;
        }
    }
}

2. Limit Parametrelerinin Açıklaması

Yukarıdaki yapılandırmada kullanılan parametrelerin anlamları:

Parametre Açıklama Önerilen Değer
zone Paylaşılan bellek bölgesi adı ve boyutu 10m (10 MB)
rate İzin verilen istek sayısı 10r/s veya 600r/m
burst Kuyruğa alınabilecek ek istek sayısı 20-50
nodelay Bekleyen isteklerde gecikme uygulama Gerekirse kullanın

Bot Türlerine Göre Farklı Stratejiler

1. Basit Bot Engelleme

# Basit hız sınırlama - normal kullanıcılar için
limit_req_zone $binary_remote_addr zone=basic:10m rate=5r/s;
location / {
    limit_req zone=basic burst=10 nodelay;
}

2. API Endpoint Koruması

# API'ler için daha sıkı limitler
limit_req_zone $binary_remote_addr zone=api:10m rate=1r/s;
location /api/ {
    limit_req zone=api burst=5 nodelay;
}

3. Oturum Açma Sayfası Koruması

# Giriş sayfası için özel koruma
limit_req_zone $binary_remote_addr zone=login:10m rate=3r/m;
location /wp-login.php {
    limit_req zone=login burst=5 nodelay;
    # WordPress için
}

Gelişmiş Rate Limiting Stratejileri

User-Agent Bazlı Sınırlama

Bazı zararlı botlar kolayca tespit edilebilir. User-Agent string'ine göre ek katman ekleyebilirsiniz:

map $http_user_agent $bad_bot {
    default 0;
    ~*(curl|wget|scrapy|bot) 1;
    ~*python-requests 1;
}

server {
    if ($bad_bot) {
        return 403;
    }
}

Coğrafi IP Engelleme ile Kombinasyon

Eğer hizmetiniz belirli ülkelere yönelikse, GeoIP modülü ile birlikte kullanabilirsiniz:

geo $limited {
    default 1;
    195.175.0.0/16 0;  # Türkiye IP bloğu
    88.0.0.0/8 0;
}

limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=restricted:10m rate=1r/s;

location / {
    limit_req zone=general burst=20;
    
    # Kısıtlı ülkeler için daha sıkı
    if ($limited) {
        limit_req zone=restricted burst=5;
    }
}

Bot Türlerine Göre Karşılaştırma

Bot Türü Tehdit Seviyesi Önerilen Limit Ek Önlem
Arama Motoru Botları Düşük 20-50 r/s Allowlist'e ekleyin
İzleme Botları Orta 10-20 r/s Kullanıcı aracısına göre izin
Zararlı Scraping Botları Yüksek 1-5 r/s IP engelleme + Captcha
DDoS Botları Kritik 1 r/s veya blok Firewall katmanı

Rate Limiting Testi ve İzleme

Yapılandırmayı Test Etme

Rate limiting'in çalışıp çalışmadığını test etmek için curl kullanabilirsiniz:

# 10 istek göndererek test edin
for i in {1..15}; do curl -s -o /dev/null -w "%{http_code}\n" http://example.com/api/; done

Nginx Error Log İzleme

Limit aşımları Nginx error log'unda görünür:

2019/01/15 10:23:45 [error] 1234#1234: *56789 limiting connections by zone "mylimit"

Önerilen İzleme Araçları

  1. GoAccess - Gerçek zamanlı Nginx log analizi
  2. Prometheus + Grafana - Metrik toplama ve görselleştirme
  3. ELK Stack - Merkezi log yönetimi

yaygın Hatalar ve Çözümleri

Hata 1: Limit_req_zone Tanımlanmamış

Hata: "limit_req_zone" directive is not allowed here

Çözüm: limit_req_zone tanımını http bloğu içinde, server bloğu dışında yapmalısınız.

Hata 2: Çok Düşük Limit Değerleri

Belirti: Yasal kullanıcılar 503 hatası alıyor

Çözüm: rate değerini artırın ve burst parametresini ayarlayın. Gerçek trafik pattern'ınızı analiz ederek uygun değerleri belirleyin.

Hata 3: Bellek Yetersizliği

Belirti: Zone dolmuş uyarıları

Çözüm: zone boyutunu artırın (örneğin 10m yerine 50m).

Önemli Güvenlik İpuçları

  • Rate limiting tek başına yeterli değildir - kapsamlı bir güvenlik duvarı stratejisi kullanın
  • Düzenli olarak Nginx IP beyaz liste stratejinizi gözden geçirin
  • Logları analiz ederek yeni bot pattern'larını tespit edin
  • Test ortamında yapılandırmayı doğruladıktan sonra üretim sunucusuna uygulayın

Sonuç

Nginx rate limiting, sunucunuzu bot saldırılarından korumanın en etkili ve düşük maliyetli yollarından biridir. Doğru yapılandırma ile web sitenizin performansını artırırken, kaynaklarınızı kötü niyetli trafikten koruyabilirsiniz. Unutmayın ki rate limiting, kapsamlı güvenlik stratejinizin sadece bir parçasıdır. Düzenli olarak sunucu bakımı ve güvenlik güncellemeleri yapmayı ihmal etmeyin.

Başarılı bir rate limiting stratejisi için öncelikle normal trafik pattern'ınızı analiz edin, ardından kademeli olarak sınırları uygulayın ve sürekli olarak sonuçları izleyip optimizasyon yapın.

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