Soporte/Guías de proxy
Guías de proxy

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:

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

Terminal
ssh root@your-droplet-ip

2. Abre la configuración de Nginx

Edita el archivo de configuración del sitio, normalmente en /etc/nginx/sites-available/your-site:

Terminal
sudo nano /etc/nginx/sites-available/your-site

3. Agrega los bloques location del proxy

Inserta los siguientes bloques location en la configuración de tu servidor:

Nginx
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:

Terminal
sudo nginx -t

Si la prueba pasa, recarga Nginx:

Terminal
sudo systemctl reload nginx

5. Opcional: habilitar caché

Para mejorar el rendimiento, configura una zona de caché de Nginx:

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:

  1. En el panel de DigitalOcean, ve a Networking > CDN.
  2. Confirma que tu CDN está configurado para dejar pasar los encabezados de la solicitud.
  3. El CDN agrega automáticamente encabezados X-Forwarded-For.
  4. 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:

HTML
<script defer data-fl-website-id="flid_******" src="/js/main.js"></script>

Confirmar que funciona

Para validar que el proxy funciona correctamente:

  1. Navega a tu sitio web.
  2. Abre las herramientas de desarrollo del navegador y ve a la pestaña Network.
  3. Verifica que las solicitudes de analítica se sirvan desde tu dominio y no desde analytics.flowsery.com.
  4. 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:

  1. Asegúrate de que tu proxy incluya el encabezado x-flowsery-real-ip con la IP real del visitante, no con la IP del servidor, al reenviar solicitudes al endpoint /events de Flowsery Analytics.
  2. Si Nginx está detrás de otro proxy, como Cloudflare o Vercel, $remote_addr será la IP de ese proxy ascendente. Lee directamente $http_cf_connecting_ip o $http_x_real_ip.