Integrazione con Cloudflare - Guida introduttiva

La nostra integrazione con Cloudflare utilizza la soluzione di elaborazione ai margini di Cloudflare, Cloudflare Workers, per offrirti un servizio di sala d'attesa che funziona direttamente dal tuo CDN, senza che tu debba apportare alcuna modifica al codice della tua applicazione o ai tuoi server web.

Introduzione

Questo articolo ti guiderà attraverso i passaggi necessari per integrare CrowdHandler con Cloudflare.

Se, durante la lettura della guida, dovessi trovarti in difficoltà o avessi delle domande, non esitare a contattarci tramite il nostro sito di assistenza.

Prerequisiti

  1. Un account CrowdHandler attivo. Se non ti sei ancora registrato, puoi farlo qui.
  2. Un account Cloudflare.
  3. Il dominio che intendi proteggere deve essere configurato come "Proxied" in Cloudflare. La modalità "Solo DNS" non funzionerà.

Nota: Vuoi proteggere un sito WordPress o WooCommerce? Assicurati di impostare ORIGIN_TYPE = wordpress al punto 2 della guida.

Passaggio 1: Creare un Cloudflare Worker

  1. Accedi al tuo account Cloudflare.

  2. Seleziona " Domini " dal menu di navigazione a sinistra.

  3. Seleziona uno dei tuoi domini:

  4. Seleziona il menu " Percorsi dei lavoratori " nella barra di navigazione a sinistra.

  5. In alto a destra nella pagina è presente un pulsante denominato "Gestisci lavoratori". Cliccaci sopra e passa alla fase successiva.

  6. In alto a destra, clicca sul pulsante "Crea applicazione".

  7. In questa pagina, seleziona “Inizia con Hello World!”.

  8. Ora puoi impostare il nome del tuo worker; impostalo su crowdhandler-integration.

    Nota: per ora non è possibile modificare il codice. Si tratta solo di una configurazione di base del worker.

  9. Procedi alla creazione del worker cliccando su "Deploy".

  10. Ora applichiamo l'integrazione del codice cliccando su "Modifica codice".

  11. Potrai vedere il codice predefinito "Hello World".

  12. Copia il nostro codice di integrazione da GitHub e incollalo nello script.

  13. Fai clic sul pulsante "Distribuisci".

Fase 2: Configurare le variabili del worker

  1. Clicca sul pulsante "Indietro" nella pagina di modifica dello script.

  2. Accedi a Impostazioni → Variabili.

  3. Aggiungi le seguenti variabili come testo semplice, quindi fai clic su "Salva e distribuisci".

    1. API_ENDPOINT = https://api.crowdhandler.com/v1
    2. API_KEY = LA_TUA_CHIAVE_PUBBLICA_QUI (Si trova nella sezione Account → API del pannello di controllo amministrativo di CrowdHandler.)
    3. (Facoltativo) WHITELABEL = false (impostazione predefinita) | vero
    4. (Facoltativo) ORIGIN_TYPE = wordpress (imposta questa variabile opzionale se stai proteggendo un sito web WordPress o WooCommerce)
    5. (Facoltativo) NO_BYPASS = IL_TUO_TOKEN_CASUALE_QUI
    6. (Facoltativo) FAIL_TRUST = false | vero (impostazione predefinita)
    7. (Facoltativo) SAFETY_NET_SLUG = YOUR_WAITING_ROOM_SLUG_HERE
    8. (Facoltativo) COOKIE_DOMAIN = IL_TUO_DOMINIO_COOKIE_QUI
    9. (Facoltativo) IP_HEADER = IL_TUO_INTESTAZIONE_PERSONALIZZATA_QUI

VARIABILI OPZIONALI

WHITELABEL (impostazione predefinita) false) — Per impostazione predefinita, gli utenti verranno inseriti in coda sul dominio wait.crowdhandler.com di CrowdHandler. Se WHITELABEL se è impostato su true, gli utenti verranno messi in coda sul dominio protetto da CrowdHandler. Ad esempio, se CrowdHandler è stato configurato per proteggere www.example.com, gli utenti verranno inseriti in coda sul www.example.com/ch/ percorso. Non è necessario che la rotta /ch/ esista nella tua applicazione. Per saperne di più su Sale d'attesa in white label qui.

ORIGIN_TYPE — Impostare il valore su wordpress se stai proteggendo un origin WordPress o WooCommerce. In questo modo, le richieste URL che corrispondono al seguente pattern regex saranno escluse dai controlli dell'API di CrowdHandler: /(w[cp][-_](?![-_])(?!order_).*|xmlrpc\.php|readme\.html|license\.txt|trackback|feed(?:\/.*)?|comments\/feed(?:\/.*)?)(\?.*)?/

NO_BYPASS — Il NO_BYPASS Il valore verrà inviato al tuo origin come valore dell'intestazione x-ch-no-bypass. Puoi controllare la presenza di questa intestazione nella tua applicazione per verificare che la richiesta sia passata attraverso CrowdHandler. Esempi di implementazione sono disponibili nella sezione "Esempi di integrazione" di questo articolo.

FAIL_TRUST (impostazione predefinita) vero) — Per impostazione predefinita, gli utenti che non effettuano il check-in tramite l'API di CrowdHandler saranno considerati affidabili. Se impostato su false, gli utenti che non riescono a effettuare il check-in tramite l'API di CrowdHandler verranno indirizzati a una sala d'attesa di sicurezza fino a quando CrowdHandler non sarà in grado di decidere come gestirli. Maggiori informazioni su "Trust on Fail" qui.

SAFETY_NET_SLUG — Se SAFETY_NET_SLUG è definito e FAIL_TRUST è impostato su false, questa sala d'attesa verrà utilizzata come sala di sicurezza. Se non si definisce un SAFETY_NET_SLUG valore e FAIL_TRUST è impostato su false, come sala di sicurezza verrà utilizzato un modello generico di sala d'attesa. Puoi trovare lo slug della tua sala d'attesa nel pannello di controllo di CrowdHandler, nel campo URL della configurazione della sala.

COOKIE_DOMAIN — Per impostazione predefinita, il cookie CrowdHandler è limitato all’host. Impostare COOKIE_DOMAIN a un dominio principale (ad es. example.com) per renderlo disponibile su tutti i sottodomini — utile quando si mette in coda su www.example.com e la convalida delle sessioni su api.example.com. Deve essere un nome di dominio di livello superiore rispetto al nome host del worker; i valori non validi vengono ignorati.

IP_HEADER — Per impostazione predefinita, il worker legge l'IP del client dall'intestazione `cf-connecting-ip` di Cloudflare. Se il traffico raggiunge Cloudflare tramite un proxy a monte (ad es. zScaler, Imperva) che inserisce l'IP originale del client in un'intestazione diversa, imposta IP_HEADER a quel nome di intestazione (ad es. x-forwarded-for) per ricavare l'IP da lì. Nel caso di intestazioni con più valori, viene utilizzata la voce più a sinistra. Se l'intestazione configurata manca, è vuota o si verifica un errore durante l'analisi, il worker ricorre in modo sicuro a `cf-connecting-ip`, quindi le distribuzioni esistenti non subiscono alcuna modifica quando questa variabile non è impostata.

Importante: abilitare questa opzione solo se si ha la certezza che il traffico transiti attraverso un proxy upstream affidabile e sotto il proprio controllo.

Fase 3: Configurazione delle rotte protette

  1. Utilizzando il menu di navigazione a sinistra, fai clic su “Siti web”, quindi seleziona il dominio su cui stai integrando CrowdHandler.

  2. Utilizzando nuovamente il menu di navigazione a sinistra, seleziona “Percorsi dei lavoratori”.

  3. Aggiungi il percorso che desideri proteggere.

Il modello sopra riportato attiverà il worker CrowdHandler per tutte le rotte del tuo sito, ad eccezione di quelle escluse che configurerai nel passaggio successivo.

IMPORTANTE

Se si sceglie di proteggere un percorso più specifico, ad esempio *tulipmania.net/enroll-now, E hai impostato la variabile opzionale WHITELABEL per impostarlo su "true", dovresti aggiungere un percorso aggiuntivo che copra *tulipmania.net/ch*. Senza questo percorso, il worker di Cloudflare non si attiverà per visualizzare la sala d'attesa.

Fase 4: Escludere le rotte

  1. Escludere i percorsi che non devono essere protetti da CrowdHandler aggiungendo percorsi aggiuntivi e selezionando "Nessuno" nel menu a tendina dei worker.

Per impostazione predefinita, CrowdHandler non tenterà automaticamente di mettere in coda i percorsi con le seguenti estensioni di file:

avi, css, csv, eot, gif, ico, jpg, js, json, map, mov, mp4, mpeg, mpg, ogg, ogv, ott, pdf, png, svg, ttf, webmanifest, wmv, woff, woff2, xml

Ecco alcuni esempi di percorsi che potresti voler escludere:

  • Percorsi utilizzati per l'archiviazione di risorse statiche e contenuti multimediali, ad esempio /images/*
  • URL di callback generati da fornitori di servizi di pagamento di terze parti.
  • Feed JSON e RSS.

Passaggio 5: Completa la configurazione

CrowdHandler è integrato con il tuo account Cloudflare e ora sta a te personalizzare la configurazione di CrowdHandler tramite la console di amministrazione di CrowdHandler. Ecco alcuni articoli della guida tecnica consigliati che illustrano le nozioni di base:

  1. Introduzione (Puoi ignorare le parti relative all'installazione dell'integrazione JavaScript.)
  2. Sale d'attesa
  3. Configurazione del dominio

Passaggio 6 (consigliato): Rimuovere la limitazione della frequenza di Cloudflare Workers

Il piano gratuito di Cloudflare Workers prevede un limite giornaliero di 100.000 richieste, che si azzera a mezzanotte (UTC). Se ritieni che tale limite sia troppo basso per il tuo traffico, ti consigliamo il piano a pagamento di Workers, che elimina il limite giornaliero.

Passaggio 7: Esecuzione di un semplice test di integrazione

Una volta completata la configurazione, ti consigliamo di eseguire un test di funzionamento della tua configurazione, come descritto nella guida disponibile qui: Come si testa la sala d'attesa?