Night Watch
Scraper akınlarına karşı sitelerinizi ayakta tutun: çalışma süresi izleme, Cloudflare Ücretsiz plan kalkanı ve bir bot kapısı.
- Linux
- Python 3.10+
- Cloudflare Free plan
- ASGI or WSGI apps

Ne yapar
Night Watch, çalıştırdığınız her siteyi bir ziyaretçi gibi beş dakikada bir açar; bir site açılmayı bıraktığı ve tekrar açıldığı anda size bildirir. Bir site, bir scraper tarafından sel gibi akın edildiği için çöktüğünde, gözetim mekanizması seli uç noktada (edge) durduran bir Cloudflare kuralını devreye alır ve uygulamanız bu süre boyunca insanlara hizmet vermeye devam eder.
- Her site, beş dakikada bir. Cloudflare hesabınızdaki her bölge (zone) ve isteğe bağlı olarak sayfanın içermesi gereken metinle birlikte listelediğiniz her sayfa. Bir site çöktüğünde bir mesaj, tekrar ayağa kalktığında ne kadar süre kapalı kaldığını belirten bir mesaj ve kapalı kaldığı sürece hatırlatma. E-posta, sohbet webhook'u veya her ikisiyle.
- Ücretsiz planda bir kalkan. Üç WAF özel kuralı: Gerçek Chrome'un gönderdiği başlıklar (header) olmadan Chrome kullanıcı ajanı (user agent) bir doğrulama (challenge) alır, scraper bulutlarından gelen sayfa istekleri bir doğrulama alır ve sel sırasında acil durum kuralı, çerez ve bağlantı (referral) olmayan yabancıları doğrulamaya tabi tutar.
- Kendi kendine devreye girer. Bir site aşırı yükten çöktüğünde, gözetim mekanizması acil durum kuralını açar ve bunu alarmda belirtir; site ayağa kalktıktan saatler sonra kuralı kapatır. Sizin kendiniz açtığınız bir kalkan açık kalır.
- Uygulamanızın içinde bir kapı. FastAPI, Starlette, Django, Flask veya herhangi bir ASGI ya da WSGI uygulaması için bağımlılığı olmayan tek dosya. Kodunuz çalışmadan önce sahte tarayıcıları reddeder ve yabancıları her bir işçinin (worker) sunabileceği sınırlar içinde tutar. Çerezi olan veya bir bağlantı üzerinden gelenler bunu hiç fark etmez.
- Sizi nelerin vurduğunu görün. Cloudflare güvenlik duvarının son dakikalarda hangi kural, ağ, ülke, kullanıcı ajanı ve yol (path) üzerinden doğrulama yaptığını, Ücretsiz planın izin verdiği ham olaylardan (raw events) okuyarak görün.
- Geri alma dahili. Her kural değişikliği önce bölgenin (zone) kurallarını kaydeder, kendi kurallarınız bizimkilerden önce yerinde kalır ve tek bir komut kaydedilen seti geri yükler.
Kendi sitelerimizde test edildi
- Gerçek bir sel, bir saat: Kendi sitelerimizden birinde, sahte tarayıcı kuralı 10.000'den fazla isteği doğrulamaya tabi tuttu. Cloudflare'ın okumamıza izin verdiği 10.000 istek, 9.627 ev genişbant adresinden geliyordu ve hiçbiri 4'ten fazla istek göndermemişti: Adres başına hız sınırı asla devreye girmezdi.
- Her kural, Ücretsiz planda canlı olarak test edildi: Acil durum kuralı açıkken bir yabancı doğrulamaya tabi tutuldu, çerez veya bağlantı ile geçti; tarayıcı başlıkları olmayan bir Chrome kullanıcı ajanı doğrulamaya tabi tutuldu; Googlebot geçti. Bölgenin önceki kuralları ardından tam olarak geri yüklendi.
- 1.747 istek/saniye altındaki kapı uvicorn üzerinde: tarayıcı başlıkları olmayan her kazıyıcı reddedildi, yabancılar uygulamanın sunabildikleriyle sınırlı tutuldu ve her tekrar gelen ziyaretçi, bağlantı ziyaretçisi ve Googlebot isteği, sayfanın kendi süresi olan medyan 0.20 saniyede sunuldu.
İçinde neler var
Gözetim
Cloudflare hesabınızdan ve bir listeden gelen siteler, ziyaretçiye benzeyen kontroller, e-posta veya webhook ile mesajlar ve "hepsi çöktü" durumunu "bu makine çevrimdışı" durumundan ayıran bir test.
Kalkan
Bir bölge veya tüm bölgeler için kurulum, durum, açma, kapama, kaldırma ve geri yükleme; her değişiklik önceden yedeklenir.
Kapı
ASGI ve WSGI ara yazılımı, insanlara bir çerez veren 2 saniyelik "bir an lütfen" sayfası ve dakikada bir günlük satırı.
Çalışma kılavuzu
Bir site yavaşladığında veya çöktüğünde ne yapılacağı, bir akının nasıl okunacağı ve Cloudflare panelinde nelerin açılmaması gerektiği.
Gereksinimler
- systemd ve Python 3.10 veya daha yeni sürüme sahip Linux; pip ile kurulacak bir şey yok.
- Kalkan ve olay görünümü için Cloudflare'de (herhangi bir plan, Ücretsiz plan dahil) barındırılan siteler ve bir API token.
- Sitelerinizi sunan makineden farklı bir makine; böylece o makine çöktüğünde size haber verebilir.
Bilmenizde fayda var
- Acil durum kuralı, adresinizi yeni bir tarayıcıya yazan kişiyi de doğrulama ister; bu nedenle akın sırasında dışında kapalıdır.
- Doğrulanmış botlar ve kendilerini tanıtan robotlar asla doğrulama istenmez ve arama motorları kapı tarafından geri çevrilmez.
- Kalkan, Ücretsiz planın bölge başına izin verdiği beş özel kuralın üçünü kullanır.
Sıkça Sorulan Sorular
Ücretli bir Cloudflare planına ihtiyacım var mı?
Hayır. Night Watch'un yaptığı her şey Ücretsiz planda çalışır: üç kural, olay görünümü ve otomatik geçişler. Ücretli bir plan yalnızca bizimkilerin yanında daha fazla kural yuvası verir.
Google veya AI arama tarayıcılarını engeller mi?
Hayır. Cloudflare'in doğrulanmış botları ve user agent'ında kendisini tanıtan her robot kalkanı geçer ve kapı asla bir arama motorunu veya bağlantı önizlemesini geri çevirmez. AI tarayıcılarını engellemek istiyorsanız, bu Cloudflare panelinde ayrı bir tercihtir.
Sitem Cloudflare'de değil. Yine de işe yarar mı?
Gözetim ve kapı her yerde çalışır: gözetim herhangi bir URL'yi açar ve kapı herhangi bir Python web uygulamasını korur. Kalkan ve olay görünümü Cloudflare gerektirir.
Bu, bir çalışma süresi izleyicisinden nasıl farklı?
Bir çalışma süresi izleyicisi, bir sitenin çöktüğünü söyler. Night Watch da bunu söyler, ardından gördüğümüz en yaygın nedene göre harekete geçer: Cloudflare kenarındaki kalkanı devreye alır ve kapı, sel devam ederken uygulamanızın istediğiniz kişilere hizmet vermesini sağlar.
Güncellendi: