Varnish Cache
  • Varnish Cache
  • Varnish Cache Nedir?
    • Varnish Cache
    • Varnish Açık Kaynak Bir Proje
    • Varnish Nasıl Çalışır?
  • Varnish Başlangıç
    • Varnish Kurulumu
      • Paket Yöneticisi Kullanarak Varnish Kurulumu
      • Ubuntu ve Debian Üzerinde Varnish Kurulumu
      • Red Hat and CentOS Üzerinde Varnish Kurulumu
    • Varnish Yapılandırma
      • Yapılandırma Dosyası
      • Ubuntu ve Debian için Systemd Ek Bilgi
      • Başlangıç Seçenekleri
    • TLS/SSL Hakkında
  • Varnish HTTP
    • Varnish ve HTTP
    • Idempotence
    • State (Durum)
    • Expiration (Süre sonu)
      • Expires Header
      • Cache-Control Header
      • Expiration Precedence (Bitiş Süresi Önceliği)
    • Koşullu İstekler
      • ETag
      • Last-Modifed
      • Koşullu İstekler ile Varnish İşlemleri Nasıl Yapılır?
    • Önbellek Varyasyonları
    • Varnish Hakkında Bazı Sorular
  • Varnish Yapılandırma Dili (VCL)
    • Varnish Yapılandırma Dili (VCL)
    • Kancalar ve Alt Yordamlar
      • İstemci Tarafı Alt Yordamları
      • Arka Uç Alt Yordamları
      • Başlatma ve Temizleme Alt Yordamlar
      • Özel Alt Rutinler
    • Dönüş İfadeleri
    • Akış Şeması
    • VCL Sintaks
      • Operatörler
      • Koşullar
      • Yorumlar
      • Değerler
      • Düzenli İfadeler
      • Include
      • Varnish Modüllerini Dahil Etme
    • Arka Uçlar (Backends) ve Health Probes
    • Erişim Kontrol Listeleri (ACL)
    • VCL Değişkenleri
    • Varnish'in Dahili VCL'i
  • Önbelleği Geçersiz Kılma
    • Purging
    • Banning
      • Lurker-Friendly Bans
      • Ban Listesi
    • Zorla Önbelleği Geçersiz Kılmak
  • Backend Kullanımı
    • Backend Kullanımı
    • Backend Seçimi
    • Backend Sağlığı
    • Directors
      • Round-Robin Director
      • Random Director
      • Hash Director
      • Fallback Director
    • Grace Mode
      • Grace Mode Aktif Et
  • Loglama ve Debug
    • Loglama ve Debug
    • Varnishstat
    • Varnishtop
  • Varnish Modüller
    • Varnish Modüller
    • libvmod-geoip
    • libvmod-vsthrottle
  • Kaynaklar
    • Kaynaklar
Powered by GitBook
On this page

Was this helpful?

  1. Önbelleği Geçersiz Kılma
  2. Banning

Lurker-Friendly Bans

ban-lurker, asenkron olarak yasak listesinin kontrol edilmesinden ve temizlenmesinden sorumludur. ban-lurker'ın, istek bilgisi eksikliğinden dolayı nesneleri geçersiz kılmak için sınırlı bir kapsamı bulunduğundan bahsettik: ban-lurker sadece obj içeriğini biliyor.

Fakat talep bilgisini req nesnesinden kopyalarsak, aslında Lurker-Friendly ban yazabiliriz. Aşağıdaki VCL kod parçasına bir göz atın:

acl ban {
 "localhost";
 "192.168.55.0"/24;
}

sub vcl_recv {
  if (req.method == "BAN") {
    if (!client.ip ~ ban) {
      return(synth(403, "Not allowed."));
    }
    ban("obj.http.x-host == " + req.http.host + " && obj.http.x-url ~ " + req.url);
    return(synth(200, "Ban added"));
  }
}

sub vcl_backend_response {
  set beresp.http.x-host = bereq.http.host;
  set beresp.http.x-url = bereq.url;
}

sub vcl_deliver {
   unset resp.http.x-host;
   unset resp.http.x-url;
}

İşin püf noktası, nesne önbellekte depolandığında alan adı ve isteğin URL'sini bir header olarak eklemektir.

set beresp.http.x-host = bereq.http.host; isteğin alan adını içeren özel bir x-host başlığı belirleyecek.

beresp.http.x-url = bereq.url; URL'yi özel bir x-url header olarak ayarlayacaktır.

Bu durumda, önbellek geçersiz kılma sadece bir sonraki talep anında gerçekleşmeyecek, aynı zamanda ban-lurker tarafından asenkron olarak da gerçekleştirilecektir. ban-lurker, bir URL eşleşmesini içeren yasak listesindeki yasakları işlemek için gerekli istek bilgilerine sahip olacaktır. ban fonksiyonunda kullandıktan sonra bu özel header değerlerini temizlemeliyiz. Bu vcl_deliver içinde yapılır.

ban-lurker hemen ban listesinden nesne çıkarmaz; bu durumu etkileyen üç parametre vardır:

Parametre

Görevi

ban_lurker_age

banlanmış nesneler kadar en az bu yaşta olmalıdır. Varsayılan değer 60 saniyedir.

ban_lurker_batch

ban-lurker'ın tek bir işlem sırasındaki temizleyeceği yasak sayısı Varsayılan değer 1000 öğedir.

ban_lurker_sleep

Yasaklama yapan kişinin işlemler arasında beklediği saniye miktarı. Varsayılan değer 0,010 saniyedir.

PreviousBanningNextBan Listesi

Last updated 6 years ago

Was this helpful?