Ahoj, pracuju zrovna na e-shopu (hodně předělaná stará Presta), který má občas velký traffic. Většinu této návštěvnosti tvoří připojení ní ze zahraničí (pravděpodobně boti), které nakonec stejně žádný nákup neuskuteční.
Moje představa je taková, že když se klient pokusí navštívit stránky, zjistím, jaký je aktuální traffic. Pokud je traffic velký a klient se připojuje ze zahraničí, zobrazím statickou stránku s Captchou.
Problém mám spíše s výběrem nejlepšího způsobu, jak zjistit aktuální návštěvnost. Nejsem si jistý, jestli posílání dotazu do databáze pro každé připojení je nejlepší způsob, když je provoz velký.
Napadlo mě počítat provoz vytvořením WebSocket serveru, který by počítal pouze aktuální počet spojení. Jen nevím, jak by to zatížilo server a jestli to není horší řešení z hlediska výkonu.
Poslední věc, která mě napadla, je počítání provozu za aktuální minutu tak, že bych hodnotu načetl pomocí apcu_fetch() (když klient pošle požadavek) a pomocí apcu_store() uložil +1. Skript na kontrolu provozu by se pak vždy díval na hodnotu uloženou předchozí minutu.
Které řešení má nejmenší dopad na zatížení serveru a nenapadá vás ještě něco jiného co by jste mi doporučili?