Flowsery Analytics mit Express.js proxyen
Leiten Sie Flowsery Analytics über Ihren Express.js-Server weiter, um Störungen durch Adblocker zu vermeiden und genauere Besucherdaten zu erfassen.
1. Abhängigkeiten installieren
npm install express-http-proxy2. Proxy einrichten
Fügen Sie die folgende Proxy-Konfiguration zu Ihrer Express.js-App hinzu:
const express = require('express');
const proxy = require('express-http-proxy');
const app = express();
app.set('trust proxy', true);
// Proxy the tracking script
app.use(
'/js/main.js',
proxy('analytics.flowsery.com', {
https: true,
proxyReqPathResolver: function (req) {
return '/js/main.js';
},
})
);
// Proxy the event collection endpoint + forward real visitor IP
app.use(
'/api/track',
proxy('analytics.flowsery.com', {
https: true,
proxyReqPathResolver: function (req) {
return '/analytics/events';
},
proxyReqOptDecorator: function (proxyReqOpts, srcReq) {
// Determine the real visitor IP. Use whichever header your edge provides.
const clientIp =
srcReq.headers['cf-connecting-ip'] || srcReq.headers['x-real-ip'] || srcReq.headers['x-forwarded-for']?.split(',')[0]?.trim() || srcReq.ip;
// CRITICAL: Flowsery reads `x-flowsery-real-ip` as the authoritative
// visitor IP. Without it, every visitor resolves to your server's
// region because the proxy hop rewrites `cf-connecting-ip`.
if (clientIp) {
proxyReqOpts.headers['x-flowsery-real-ip'] = clientIp;
}
return proxyReqOpts;
},
})
);
// Your other routes...
app.listen(3000);Hinweis: Wenn Ihre App bereits /api/track verwendet, fügen Sie dem Flowsery-Analytics-Skript data-api hinzu, um Events an einen anderen Pfad zu senden. Zum Beispiel sendet data-api="/flowsery-events" Daten stattdessen an /flowsery-events.
Wichtig: Wenn im Dashboard jeder Besucher aus demselben Ort zu kommen scheint, prüfen Sie, ob x-flowsery-real-ip beim Weiterleiten an den Flowsery-Analytics-Endpunkt /events auf die echte Besucher-IP gesetzt wird und nicht auf die IP des Proxy-Servers.
3. Skript-Tag anpassen
Ersetzen Sie das ursprüngliche Flowsery-Analytics-Snippet durch die geproxyte Variante:
<script defer data-fl-website-id="flid_******" src="/js/main.js"></script>4. Deploy
Nach dem Deploy Ihres Servers wird die Proxy-Konfiguration automatisch aktiv.
Prüfen, ob es funktioniert
So validieren Sie das Proxy-Setup:
- Öffnen Sie Ihre Website.
- Öffnen Sie die Entwicklerwerkzeuge Ihres Browsers und wechseln Sie zum Tab "Network".
- Prüfen Sie, ob Analytics-Requests über Ihre Domain statt über
analytics.flowsery.comausgeliefert werden.
Fehlerbehebung
Jeder Besucher scheint aus demselben Ort zu kommen
Wenn alle Besucher aus einer einzigen geografischen Region erscheinen (typischerweise aus der Region Ihres Servers), leitet der Proxy die echte Besucher-IP nicht korrekt weiter.
Lösung:
- Stellen Sie sicher, dass Ihr Proxy
x-flowsery-real-ipbeim Weiterleiten an den Flowsery-Analytics-Endpunkt/eventsauf die tatsächliche Besucher-IP setzt und nicht auf die Server-IP. - Wenn Express hinter einem weiteren Proxy läuft (Nginx, Cloudflare usw.), ist
srcReq.ipdie IP dieses Upstream-Proxys und nicht die des Besuchers. Lesen Sie stattdessen direktcf-connecting-ipoderx-real-ip, wie in Schritt 2 gezeigt.