Plugin CrowdHandler per WordPress e incompatibilità con la cache
I nostri clienti installano il plugin CrowdHandler per gestire picchi di traffico elevati. Non sorprende che gli stessi clienti installino spesso plugin di caching per velocizzare i propri siti web. Purtroppo, può verificarsi un conflitto tra i due, e i plugin di caching e i servizi cloud possono interferire con la capacità di CrowdHandler di distribuire il carico e reindirizzare gli utenti al vostro sito in modo equo.
A meno che non si conosca molto bene il funzionamento del proprio sistema di caching, si consiglia di disattivare i plugin di caching e i servizi di caching su cloud quando si utilizza CrowdHandler. Alcuni utenti hanno segnalato problemi nell'utilizzo del nostro plugin per WordPress con:
- Kinsta
- NitroPack
- Cache LiteSpeed
- Cloudflare (when set to cache pages, not just assets)
There are many caching plugins and services available for WordPress and others, not listed above, could cause issues. While CrowdHandler acts as a ‘good citizen’ and sets the correct standards-based cache headers to assist third-party services, these are not always respected as some plugins seek to maximize caching behavior by overriding standards.
Cloud-based services may be particularly susceptible to this issue, because the caching behavior is implemented outside WordPress, and cannot be overridden by our plugin.
Nota: non siamo in grado di risolvere i problemi di configurazione causati da incompatibilità tra plugin e servizi di terze parti. Se riscontri problemi legati al comportamento della cache e non riesci a risolverli disabilitando i plugin, valuta la possibilità di disabilitare il plugin di WordPress e di utilizzare invece il nostro codice JavaScript. Il codice JavaScript funziona bene con i sistemi di cache e la combinazione di pagine correttamente memorizzate nella cache e codice JavaScript può essere efficace nel ridurre il carico sui siti WordPress.
What’s the problem?
Our WordPress Plugin checks the user’s cookie with the CrowdHandler API and redirects the user to the waiting room if they need to wait. Caching plugins can cache the cookie and/or the redirect. This means that users can come back to the site from the waiting room but be sent back, because the caching plugin has cached another user’s cookie or redirect. This will result in users being sent to the waiting room multiple times, and with a seeming randomness relating to whether the user gets through or not.
Can I confirm if my site has this issue?
Se pensi che il tuo sito stia riscontrando questo problema, o se vuoi verificare questa eventualità, c'è un semplice test che puoi eseguire in una finestra di terminale. Esegui:
curl -I https://yourdomain.com/some-protected-url
Dovresti vedere le intestazioni di CrowdHandler restituite dalla tua pagina, compreso il cookie di CrowdHandler. Se non vedi affatto le intestazioni, ma vedi invece un’intestazione del tipo “cache: hit”, ciò indica che stai visualizzando una pagina memorizzata nella cache e che il plugin CrowdHandler non viene richiamato. Se invece vedi le intestazioni e il cookie, ripeti rapidamente la richiesta. Se viene restituito lo stesso cookie (valore identico), significa che è stato memorizzato nella cache.
Cosa dovrei fare?
- Disattiva i plugin e i servizi di cache e ripeti il test. Se ogni volta viene generato un nuovo cookie, il problema è risolto. (Potrebbe volerci un po’ di tempo prima che le cache scadano e tu possa constatare la risoluzione del problema)
- Se non riesci a disabilitare i servizi di caching, passa al metodo di implementazione tramite JavaScript nel pannello di amministrazione di CrowdHandler, assicurati che il nostro JavaScript sia installato sul tuo sito e disabilita il plugin di WordPress. L’integrazione JavaScript imposta e recupera i cookie ed effettua i reindirizzamenti tramite JavaScript, e non è soggetta alla memorizzazione in cache di questi elementi. In questo caso, la memorizzazione in cache è vantaggiosa. Se i tuoi plugin di cache funzionano correttamente, le tue pagine di destinazione dovrebbero caricarsi rapidamente e il JavaScript trasferirà l’utente prima che interagisca con pagine non memorizzate nella cache, causando un carico elevato.
- Se CrowdHandler protegge solo gli URL non memorizzati nella cache, non sarà soggetto a questo problema; pertanto, potresti provare a limitare la copertura degli URL della tua sala d'attesa a quelli che non sono memorizzati nella cache.
- If the caching layer causing the problem is Cloudflare, you should probably be using our Cloudflare edge worker instead of the Wordpress Plugin. Set up the edge worker, and disable the Wordpress plugin. If you are using our Cloudflare edge worker, with a WordPress backend, we recommend raising a support ticket with us so that we can install WordPress URL exclusions on your account.