libvmod-vsthrottle

Varnish kullanarak Rate-Limit yapmanızı sağlar. Örneğin istemcinin 10 saniye için en fazla 15 istek yapmasını sınırlayabilirsiniz. Eğer sınırı aşarsa hata sayfası dönebilir veya istediğiniz herhangi bir işlemi yapabilirsiniz.

Kurulum (Debian Tabanlı)

Aşağıdaki paketlerin kurulu olması gerekli.

apt-get install build-essential varnish-dev

Aşağıda 4.0 sürümü için kurulum gösterilmiştir.

cd /tmp
git clone https://github.com/varnish/libvmod-vsthrottle -b 4.0
cd libvmod-vsthrottle;
./autogen.sh
./configure
make -j $(nproc)
sudo make install

Yukarıdaki adımları sorunsuz şekilde tamamladıktan sonra kullanıma geçebilirsiniz. Kullanmak için import etmeniz yeterli.

import vsthrottle;

Fonksiyonlar

is_denied(STRING key, INT limit, DURATION period)

key argümanı benzersiz bir tanımlayıcı olmalı genelde ip kullanılır. limit argümanı belirlenen zaman periyodunda kaç adet istek yapılabileceğini gösterir. period zaman periyodu.

Fonksiyon boolean bir değer döner.

sub vcl_recv {
    if (vsthrottle.is_denied(client.identity, 15, 10s)) {
        return (synth(429, "Too Many Requests"));
    }
}

Last updated