Nginx bağlantı sınırlama (connection limiting) nasıl yapılır? (limit_conn_zone, limit_conn)

Nginx ve Bağlantı Sınırlama

Nginx, yüksek performanslı bir web sunucusu ve ters proxy sunucusudur. Dağıtık sistemleri desteklemesi, dinamik içeriklere hızlı bir şekilde hizmet verebilmesi ve ölçeklenebilir yapısıyla birçok web uygulaması için tercih edilen bir çözümdür. Ancak, yoğun trafik altında sunucunun aşırı yüklenmesi, hizmet kesintilerine ve performans düşüşlerine yol açabilir. Bu nedenle, Nginx’te bağlantı sınırlama mekanizmaları kullanmak, sunucu kaynaklarının daha verimli bir şekilde kullanılmasını sağlar ve kötü niyetli kullanıcıların aşırı yüklenmelerine karşı koruma sunar.

limit_conn_zone ve limit_conn Direktifleri

Nginx’te bağlantı sınırlaması gerçekleştirmek için iki temel direktif kullanılmaktadır: `limit_conn_zone` ve `limit_conn`. Bu direktifler, belirli bir bölge veya kullanıcı sınırlamaları tanımlamak için kullanılır. Bu yapılandırmalar, farklı alanların yükünü dengelemek için önemli bir araçtır.

limit_conn_zone Direktifi

`limit_conn_zone`, belirli bir kullanıcı grubundan gelen bağlantıların sayısını izlemek için bir alan tanımlamaktadır. Bu direktif, genellikle bir sunucu bloğunda veya bir http bloğunda tanımlanır ve kullanıcıların belirli bir limit içerisinde kalmasını sağlamak için kullanılacak olan bellek alanını belirler. Kullanıcı sınırlaması genellikle bir IP adresi veya belirli bir kimlik doğrulama mekanizmasıyla ilişkilendirilir.

Aşağıda, `limit_conn_zone` kullanımına ilişkin örnek bir yapılandırma bulunmaktadır:

“`nginx
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;

}
“`

Bu örnekte, `$binary_remote_addr` kullanıcının IP adresini temsil ederken, `zone=addr:10m` ifadesi 10 megabaytlık bir alanın ayrıldığını göstermektedir. Bu alan, kullanıcı bağlantılarının sayısını izlemek için kullanılacak ve bu bağlamda her kullanıcı için bir kayıt oluşturulacaktır.

limit_conn Direktifi

`limit_conn` direktifi, daha önce tanımlanan bağlantı bölgesine dayanarak kullanıcıların kabul edilecek maksimum bağlantı sayısını belirler. Bu direktif, aynı zamanda belirli bir çevre, sunucu veya yerel bir dizin üzerinde tanımlanabilir.

Aşağıda, `limit_conn` kullanımına ilişkin bir örnek bulunmaktadır:

“`nginx
server {

limit_conn addr 10;

}
“`

Bu yapılandırmada, `addr` bağlantı bölgesindeki her kullanıcı için maksimum 10 bağlantının kabul edildiği belirtilmektedir. Eğer bir kullanıcı bu limit üzerinde bir bağlantı açmaya çalışırsa, Nginx otomatik olarak bir 503 Hatası döndürecektir.

Bağlantı Sınırlama Politikasının Uygulanması

Bağlantı sınırlama politikaları, Nginx yapılandırmasında belirli stratejiler oluşturmayı gerektirir. Genellikle, sınırlamaların belirli URL’ler ya da URL grupları için geçerli olması amacıyla, ilgili alan altında yapılandırma yapılır.

Aşağıda, belirli bir yol için bağlantı sınırlamalarının uygulandığı bir örnek görülebilir:

“`nginx
location /api {
limit_conn addr 5;

}
“`

Bu örnekte, `/api` yoluna yapılan her IP adresinden maksimum 5 bağlantıya izin verilmektedir. Bu, API trafiğini kontrol altında tutmak ve aşırı yüklenmeyi önlemek için etkili bir yöntemdir.

Ekstra Özellikler

Nginx, bağlantı sınırlama işlemlerini daha esnek hale getirmek için `limit_conn_log_level`, `limit_conn_status` gibi ek direktifler de sunar. Bu direktifler sayesinde, sınırlama mekanizmalarının nasıl çalıştığına yönelik loglama yapılabilir ve istenilen hata kodları tanımlanabilir.

“`nginx
limit_conn_log_level error;
limit_conn_status 503;
“`

Yukarıdaki yapılandırma ile, bağlantı sınırlama sonrası oluşan hatalar log dosyasına hata seviyesi ile kaydedilecek ve kullanıcıya 503 hatası döndürülecektir.

Sonuç

Nginx sunucularında bağlantı sınırlama, performansın artırılması ve sistemin güvenliğinin sağlanması açısından önemli bir mekanizmadır. `limit_conn_zone` ve `limit_conn` direktifleri sayesinde, sunucu kaynaklarının belirli kullanıcılar tarafından aşırı kullanılmasının önüne geçmek mümkündür. Kullanıcı trafiği analiz edilerek, bu tür sınırlamalar etkili bir şekilde uygulanabilir. Bu yapılandırmalar, Nginx yönetiminde uygulanabilir en iyi uygulama örneklerinden biri olarak öne çıkar.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

SON İÇERİKLER

İLGİNİZİ ÇEKEBİLİR