Night Watch
Udržujte své weby online i při záplavách scraperů: hlídač dostupnosti, ochrana na bezplatném tarifu Cloudflare a brána proti botům.
- Linux
- Python 3.10+
- Cloudflare Free plan
- ASGI or WSGI apps

Co to dělá
Night Watch otevírá každý web, který provozujete, tak jak to dělá návštěvník, každých pět minut, a okamžitě vám oznámí, když se přestane otevírat, i když je zase zpět. Když web spadne kvůli tomu, že ho zaplavuje scraper, hlídač zapne pravidlo Cloudflare, které zastaví záplavu na okraji sítě, a vaše aplikace mezitím obsluhuje lidi.
- Každý web, každých pět minut. Každá zóna ve vašem účtu Cloudflare plus libovolná stránka, kterou uvedete, volitelně s textem, který musí stránka obsahovat. Jedna zpráva, když web spadne, jedna, když je zase nahoře s informací, jak dlouho byl mimo provoz, a připomínka, dokud je mimo provoz. Emailem, chatovým webhookem nebo oběma způsoby.
- Štít na Free tarifu. Tři vlastní pravidla WAF: uživatelský agent Chrome bez hlaviček, které posílá každý skutečný Chrome, dostane výzvu; požadavky na stránky z scraper cloudů dostanou výzvu a nouzové pravidlo dá výzvu cizincům bez cookie a bez odkazu během záplavy.
- Zapíná se samo. Když web spadne přetížením, hlídač zapne nouzové pravidlo a uvede to v alarmu; několik hodin poté, co je web zase nahoře, ho vypne. Štít, který jste zapnuli sami, zůstane zapnutý.
- Brána uvnitř vaší aplikace. Jeden soubor bez závislostí pro FastAPI, Starlette, Django, Flask nebo libovolnou aplikaci ASGI či WSGI. Odmítne falešné prohlížeče, než se spustí váš kód, a udrží cizince v mezích toho, co dokáže obsloužit každý worker. Lidé s cookie nebo přicházející přes odkaz si toho nevšimnou.
- Uvidíte, kdo na vás útočí. Co firewall Cloudflare v posledních minutách vyzval, podle pravidla, sítě, země, uživatelského agenta a cesty, čteno z hrubých událostí, které Free tarif umožňuje.
- Vestavěné vrácení zpět. Každá změna pravidel nejprve uloží pravidla zóny, vaše vlastní pravidla zůstanou na místě před těmi našimi a jeden příkaz obnoví uloženou sadu.
Otestováno na našich vlastních webech
- Skutečná záplava, jedna hodina: na jednom z našich webů pravidlo pro falešné prohlížeče vyzvalo více než 10 000 požadavků. Těch 10 000, které nám Cloudflare dovolí přečíst, přišlo z 9 627 adres domácích širokopásmových připojení, žádná jich neposlala více než 4: limit na adresu by nikdy nespustil.
- Každé pravidlo, živě otestováno na Free tarifu: cizinec byl vyzván, když bylo zapnuté nouzové pravidlo, a puštěn dál s cookie nebo odkazem; uživatelský agent Chrome bez hlaviček prohlížeče byl vyzván; Googlebot prošel. Předchozí pravidla zóny byla poté přesně obnovena.
- Brána pod 1 747 požadavky za sekundu na uvicorn: každý scraper bez hlaviček prohlížeče byl odmítnut, cizinci dostali jen to, co aplikace uměla obsloužit, a každý vracející se návštěvník, návštěvník přes odkaz i požadavek Googlebotu byl obsloužen za medián 0,20 sekundy, tedy za čas samotné stránky.
Co je uvnitř
Hlídač
Weby z vašeho účtu Cloudflare a seznam, kontroly, které vypadají jako návštěvník, zprávy e-mailem nebo webhookem a test, který rozliší „všechno je dole“ od „tento stroj je offline“.
Štít
Instalace, stav, zapnutí, vypnutí, odinstalace a obnovení pro jednu zónu nebo pro všechny, přičemž každá změna je nejprve zazálohována.
Brána
Middleware pro ASGI a WSGI, stránka „prosím počkejte“ na 2 sekundy, která lidem předá cookie, a jeden řádek v logu za minutu.
Runbook
Co dělat, když je web pomalý nebo nedostupný, jak číst nápor a co nezapínat v ovládacím panelu Cloudflare.
Požadavky
- Linux se systemd a Pythonem 3.10 nebo novějším; nic se neinstaluje z pipu.
- Pro štít a zobrazení událostí weby na Cloudflare (jakýkoli plán, včetně Free) a API token.
- Stroj jiný než ten, který obsluhuje vaše weby, aby vám mohl říct, když je ten druhý dole.
Dobré vědět
- Nouzové pravidlo také vyzve k ověření osobu, která zadá vaši adresu do nového prohlížeče, proto je vypnuté kromě doby náporu.
- Ověření boti a roboti, kteří se sami identifikují, nikdy vyzváni k ověření nejsou a vyhledávače brána nikdy neodmítne.
- Štít využívá tři z pěti vlastních pravidel, které Free plán umožňuje na zónu.
Otázky
Potřebuji placený plán Cloudflare?
Ne. Vše, co Night Watch dělá, funguje na Free plánu: tři pravidla, zobrazení událostí a automatické přepínání. Placený plán vám jen dá více slotů pro pravidla vedle těch našich.
Blokuje to Google nebo crawlerské roboty AI vyhledávačů?
Ne. Ověření boti Cloudflare a každý robot, který se v user agentu sám identifikuje, projde štítem a brána nikdy neodmítne vyhledávač ani náhled odkazu. Pokud chcete blokovat AI crawlerské roboty, je to samostatná volba v ovládacím panelu Cloudflare.
Můj web není na Cloudflare. Je to stále užitečné?
Hlídač a brána fungují kdekoli: hlídač otevře libovolnou URL a brána chrání libovolnou Pythonovou webovou aplikaci. Štít a zobrazení událostí potřebují Cloudflare.
Čím se to liší od monitorování dostupnosti?
Monitor dostupnosti vám řekne, že stránka je nedostupná. Night Watch vám to řekne také, ale následně zasáhne proti nejčastější příčině, kterou pozorujeme: zapne štít na okraji sítě Cloudflare a brána udržuje vaši aplikaci v provozu pro požadované uživatele, dokud povodeň trvá.
Aktualizováno: