Proxy de Flowsery Analytics con DigitalOcean
Enruta Flowsery Analytics a través de DigitalOcean para evitar la interferencia de los adblockers y capturar datos de visitantes más precisos. Esta guía cubre tanto App Platform como configuraciones basadas en Droplets.
Opción 1: DigitalOcean App Platform
Si ejecutas tu aplicación en DigitalOcean App Platform con Node.js, consulta la guía específica del framework que coincida con tu stack:
- Apps de Next.js: consulta la guía de proxy de Next.js
- Apps de Express.js: consulta la guía de proxy de Express.js
- Otras apps Node.js: sigue el enfoque de Express.js
App Platform reenvía automáticamente la IP mediante el encabezado X-Forwarded-For, así que las configuraciones de esas guías funcionan sin cambios.
Opción 2: DigitalOcean Droplet con Nginx
Si ejecutas un Droplet de DigitalOcean con Nginx como servidor web o proxy reverso, usa la siguiente configuración.
1. Conéctate a tu Droplet
ssh root@your-droplet-ip2. Abre la configuración de Nginx
Edita el archivo de configuración del sitio, normalmente en /etc/nginx/sites-available/your-site:
sudo nano /etc/nginx/sites-available/your-site3. Agrega los bloques location del proxy
Inserta los siguientes bloques location en la configuración de tu servidor:
server {
listen 80;
server_name your_domain.com;
# Your existing configuration...
# Proxy the analytics script
location /js/main.js {
proxy_pass https://cdn.flowsery.com/main.js;
proxy_set_header Host analytics.flowsery.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Cache the script for 1 year
add_header Cache-Control "public, max-age=31536000";
expires 1y;
}
# Proxy the event collection endpoint
location /api/track {
proxy_pass https://analytics.flowsery.com/analytics/events;
proxy_set_header Host analytics.flowsery.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# CRITICAL: Flowsery reads this as the authoritative visitor IP. Without it, every visitor resolves to your server's region.
proxy_set_header x-flowsery-real-ip $remote_addr;
# Allow POST requests
proxy_method POST;
proxy_pass_request_body on;
}
# Your other location blocks...
}Nota: Si ya tienes un bloque /api/track, agrega data-api a la etiqueta del script de Flowsery Analytics para redirigir los eventos. Por ejemplo, data-api="/flowsery-events" enviará los datos a /flowsery-events.
4. Prueba y recarga Nginx
Valida la configuración en busca de errores de sintaxis:
sudo nginx -tSi la prueba pasa, recarga Nginx:
sudo systemctl reload nginx5. Opcional: habilitar caché
Para mejorar el rendimiento, configura una zona de caché de Nginx:
# Place this outside the server block (typically at the top of nginx.conf)
proxy_cache_path /var/cache/nginx/flowsery_cache
levels=1:2
keys_zone=flowsery_cache:10m
max_size=100m
inactive=60m
use_temp_path=off;
# In your server block, update the script location
location /js/main.js {
proxy_cache flowsery_cache;
proxy_cache_use_stale error timeout http_500 http_502 http_503 http_504;
proxy_cache_valid 200 1y;
proxy_cache_bypass $http_pragma;
proxy_cache_revalidate on;
proxy_pass https://cdn.flowsery.com/main.js;
proxy_set_header Host analytics.flowsery.com;
add_header Cache-Control "public, max-age=31536000";
expires 1y;
}Opción 3: DigitalOcean Spaces CDN
Si usas DigitalOcean Spaces CDN delante de tu Droplet, asegúrate de que reenvía correctamente las IP de cliente:
- En el panel de DigitalOcean, ve a Networking > CDN.
- Confirma que tu CDN está configurado para dejar pasar los encabezados de la solicitud.
- El CDN agrega automáticamente encabezados
X-Forwarded-For. - Tu configuración de Nginx recogerá las IP de los visitantes desde esos encabezados.
Modifica la etiqueta del script
Reemplaza el snippet original de Flowsery Analytics por la versión con proxy:
<script defer data-fl-website-id="flid_******" src="/js/main.js"></script>Confirmar que funciona
Para validar que el proxy funciona correctamente:
- Navega a tu sitio web.
- Abre las herramientas de desarrollo del navegador y ve a la pestaña Network.
- Verifica que las solicitudes de analítica se sirvan desde tu dominio y no desde
analytics.flowsery.com. - Comprueba en tu panel de Flowsery Analytics que las ubicaciones de los visitantes se muestran correctamente.
Solución de problemas
Todos los visitantes aparecen desde la misma ubicación
Cuando todos los visitantes muestran una única ubicación geográfica, normalmente la región de tu servidor, el proxy no está reenviando correctamente las IP reales.
Resolución:
- Asegúrate de que tu proxy incluya el encabezado
x-flowsery-real-ipcon la IP real del visitante, no con la IP del servidor, al reenviar solicitudes al endpoint/eventsde Flowsery Analytics. - Si Nginx está detrás de otro proxy, como Cloudflare o Vercel,
$remote_addrserá la IP de ese proxy ascendente. Lee directamente$http_cf_connecting_ipo$http_x_real_ip.