Nginx Sunucuda Rate Limit Ayarları ve Uygulama Örnekleri

0 Replies 8 Views
·
Participants
Thread Starter #1
Nginx Sunucuda Rate Limit Kodları

Nginx, yüksek trafikli web uygulamalarında sunucu kaynaklarını korumak ve hizmet kalitesini sağlamak amacıyla rate limiting (oran sınırlama) özelliğini sıkça kullanır. Bu özellik, belirli bir IP’den veya kullanıcıdan gelen istekleri sınırlayarak aşırı yüklenmeyi engeller ve hizmetin istikrarını artırır. Rate limit uygulaması, Nginx yapılandırma dosyası içerisinde, özellikle http veya server bloklarında tanımlanan direktiflerle gerçekleştirilir.

İlk adım olarak, limitleri tanımlamak için limit_req_zone direktifi kullanılır. Bu direktif, sınırlandırma yapılacak kaynağı ve limit parametrelerini belirler. Örneğin:

CODE
12
limit_req_zone $binary_remote_addr zone=birkisi:10m rate=10r/s;


Burada, her IP adresi için saniyede 10 istek hakkı tanımlanır ve bu sınır, 'birkisi' isimli zone’da tutulur. Bu, toplamda 10MB’lık paylaşılan bellekte tutulur, bu nedenle limitleri belirlerken bellek kullanımı ve trafik yoğunluğu göz önüne alınmalıdır.

İkinci aşamada, bu limitleri uygulanacak alanlarda limit_req direktifi ile aktif hale getiririz. Örneğin, tüm siteye veya belirli bir konfigürasyon bloğuna eklenebilir:

CODE
1234567891011
server {
    listen 80;
    server_name ornek.com;

    limit_req zone=birkisi burst=5 nodelay;

    location / {
        # diğer ayarlar
    }
}


Burada, burst parametresi, ani trafik artışlarına karşılık gelen ek istekleri belirler ve nodelay ile bu isteklerin hemen kabul edilmesi sağlanır. Bu, özellikle ani trafik patlamalarında hizmetin aşırı engellenmesini önler.

Düzenli kullanımda, limitleri IP bazında veya belirli URL’lere göre farklılaştırmak gerekebilir. Ayrıca, limitleri aşan isteklere 503 Hizmet Kullanılamıyor (Service Unavailable) yanıtı verilir. Eğer daha gelişmiş yönetim isteniyorsa, limit_req_status ile yanıt kodu da değiştirilebilir.

Sonuç olarak, Nginx’in limit_req ve limit_req_zone direktifleri, trafik yönetiminde kritik rol oynar ve doğru yapılandırma ile hem sunucu performansı korunur hem de hizmet sürekliliği sağlanır. Bu ayarların detaylı ve ihtiyaçlara uygun şekilde uygulanması, yüksek trafikli ortamlarda stabiliteyi artırır ve olası saldırılara karşı koruma sağlar.

You must be logged in to reply.

0 quotes selected