Nginx Üzerinde Bot Trafiğini Yönetme ve Kısıtlama

Nginx ters vekil sunucusu kullanarak web sitenize gelen istenmeyen bot trafiğini nasıl engelleyeceğinizi ve kaynak kullanımını optimize edeceğinizi öğrenin.

I
IT-RD
21 görüntülenme
Nginx Üzerinde Bot Trafiğini Yönetme ve Kısıtlama

Giriş

Günümüz internet dünyasında, web siteleri sürekli olarak arama motoru botları, veri kazıyıcılar (scrapers) ve kötü niyetli botlar tarafından taranmaktadır. Nginx'i bir ters vekil sunucusu (reverse proxy) olarak kullanırken, bu botların kaynak tüketimini kontrol altına almak, sunucu performansını korumak için kritik öneme sahiptir.

Sorun

Kontrolsüz bot trafiği, sunucu kaynaklarının (CPU, RAM, bant genişliği) tükenmesine ve gerçek kullanıcıların siteye erişiminin yavaşlamasına neden olabilir. Özellikle saldırgan botlar veya aşırı agresif tarayıcılar, sunucunuzu gereksiz yere meşgul edebilir.

Çözüm Adımları

Nginx üzerinde botları yönetmek için map direktifi ve limit_req modülünü kullanacağız. Bu yöntem, belirli User-Agent bilgilerini tanımlamamıza ve bu botlar için özel hız sınırlamaları uygulamamıza olanak tanır.

1. Adım: User-Agent Listesini Tanımlama

Öncelikle nginx.conf dosyanızın http bloğu içerisine, botları tespit eden bir haritalama ekleyin:

map $http_user_agent $is_bot {
    default 0;
    ~*googlebot 1;
    ~*bingbot 1;
    ~*yandexbot 1;
    ~*python-requests 1;
}

2. Adım: Hız Sınırlaması Uygulama

Botlar için özel bir hız sınırı (rate limit) bölgesi oluşturun:

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

3. Adım: Sunucu Bloğunda Kısıtlamayı Etkinleştirme

İlgili server veya location bloğunda kısıtlamayı aktif edin:

location / {
    if ($is_bot) {
        limit_req zone=bot_limit burst=5 nodelay;
    }
    proxy_pass http://backend_server;
}

Uyarı: Çok agresif hız sınırlamaları, arama motoru botlarının sitenizi düzgün indekslemesini engelleyebilir. Bu ayarları yaparken Google Search Console üzerinden indeksleme hatalarını takip etmeniz önerilir.

Özet ve İpuçları

Bu yapılandırma ile botları tanımlayabilir ve onlara özel hız limitleri atayarak sunucunuzun performansını koruyabilirsiniz. Ayrıca, robots.txt dosyanızı güncel tutmak ve fail2ban gibi araçlarla entegre çalışmak, güvenliğinizi bir üst seviyeye taşıyacaktır.

Kaynak

IT-RD