Assistance/Guides proxy
Guides proxy

Proxy Flowsery Analytics avec Caddy

Faites transiter Flowsery Analytics via Caddy afin d'eviter les interferences des bloqueurs de publicites et de capturer des donnees visiteurs plus precises. La configuration tres directe de Caddy rend cette mise en place particulierement simple.

1. Configuration Caddy de base

Ajoutez les directives suivantes a votre Caddyfile :

Text
your_domain.com {
    # Proxy the analytics script
    handle /js/main.js {
        reverse_proxy https://analytics.flowsery.com {
            header_up Host {upstream_hostport}
            header_up X-Real-IP {remote_host}
            header_up X-Forwarded-For {remote_host}
            header_up X-Forwarded-Proto {scheme}
        }
 
        # Cache the script for 1 year
        header Cache-Control "public, max-age=31536000"
        header Expires "1y"
    }
 
    # Proxy the event collection endpoint + forward real visitor IP
    handle /api/track {
        reverse_proxy https://analytics.flowsery.com {
            header_up Host {upstream_hostport}
 
            # CRITICAL: Flowsery reads this header as the real visitor IP.
            # Without it, every visitor resolves to your server's region.
            # Replace {remote_host} with {http.request.header.Cf-Connecting-Ip}
            # if Caddy sits behind Cloudflare.
            header_up x-flowsery-real-ip {remote_host}
 
            header_up X-Real-IP {remote_host}
            header_up X-Forwarded-For {remote_host}
            header_up X-Forwarded-Proto {scheme}
        }
    }
 
    # Your other site directives...
}

Remarque : si votre serveur utilise deja un chemin /api/track, ajoutez data-api a la balise script Flowsery Analytics pour envoyer les evenements ailleurs. Par exemple, data-api="/flowsery-events" envoie les donnees vers /flowsery-events.

Important : si tous les visiteurs apparaissent au meme endroit dans votre tableau de bord, verifiez que x-flowsery-real-ip est bien defini sur la vraie IP du visiteur (et non celle du serveur proxy) lors du transfert des requetes vers le endpoint /events de Flowsery Analytics.

2. Optionnel : activer le cache

Pour de meilleures performances, vous pouvez ajouter une couche de cache :

Text
your_domain.com {
    # Cache settings
    cache {
        path /var/cache/caddy
        ttl 1y
        capacity 10GB
    }
 
    handle /js/main.js {
        cache
        reverse_proxy https://analytics.flowsery.com {
            header_up Host {upstream_hostport}
            header_up X-Real-IP {remote_host}
            header_up X-Forwarded-For {remote_host}
            header_up X-Forwarded-Proto {scheme}
        }
 
        header Cache-Control "public, max-age=31536000"
        header Expires "1y"
    }
 
    # ... remainder of the configuration
}

3. Modifier la balise script

Remplacez le snippet Flowsery Analytics par la version proxifiee :

HTML
<script defer data-fl-website-id="flid_******" src="/js/main.js"></script>
Terminal
# Validate the configuration
caddy validate
 
# If validation passes, reload Caddy
caddy reload

Verifier que cela fonctionne

Pour valider le bon fonctionnement du proxy :

  1. Ouvrez votre site web
  2. Ouvrez les outils de developpement de votre navigateur et passez a l'onglet Reseau
  3. Verifiez que les requetes analytics sont servies depuis votre domaine plutot que depuis analytics.flowsery.com

Caddy gere automatiquement les certificats HTTPS et HTTP/2, ce qui en fait un tres bon choix pour proxifier l'analytics. Verifiez aussi que votre serveur Caddy dispose d'un espace disque suffisant si vous activez le cache.

Depannage

Tous les visiteurs apparaissent au meme endroit

Lorsque tous les visiteurs affichent une seule localisation geographique (generalement la region de votre serveur), le proxy ne transmet pas correctement les vraies IP des visiteurs.

Resolution :

  1. Assurez-vous que votre proxy definit x-flowsery-real-ip sur la vraie IP du visiteur (et non l'IP du serveur) lors du transfert des requetes vers le endpoint /events de Flowsery Analytics.
  2. Si Caddy est derriere Cloudflare ou un autre edge, {remote_host} sera l'IP du proxy amont, pas celle du visiteur. Utilisez {http.request.header.Cf-Connecting-Ip} (Cloudflare) ou {http.request.header.X-Real-Ip} (generique) a la place.