Suporte/Guias de proxy
Guias de proxy

Proxy do Flowsery Analytics com Caddy

Encaminhe o Flowsery Analytics através do Caddy para evitar interferência de bloqueadores de anúncios e capturar dados de visitantes mais precisos. A configuração simples do Caddy torna esta integração particularmente fácil.

1. Configuração principal do Caddy

Adicione as seguintes diretivas ao seu 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...
}

Nota: Se o seu servidor já usa um caminho /api/track, adicione data-api à tag de script do Flowsery Analytics para encaminhar eventos para outro destino. Por exemplo, data-api="/flowsery-events" envia os dados para /flowsery-events.

Importante: Se todos os visitantes aparecerem na mesma localização no seu painel, confirme que x-flowsery-real-ip está definido com o IP real do visitante (e não com o IP do servidor proxy) ao encaminhar pedidos para o endpoint /events do Flowsery Analytics.

2. Opcional: ativar cache

Para melhor desempenho, pode adicionar uma camada 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. Modificar a tag de script

Substitua o snippet original do Flowsery Analytics pela versão com proxy:

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

Confirmar que funciona

Para validar que o proxy está a funcionar corretamente:

  1. Navegue até ao seu site
  2. Abra as ferramentas de desenvolvedor do navegador e mude para o separador Network
  3. Verifique que os pedidos de analytics são servidos a partir do seu domínio em vez de analytics.flowsery.com

O Caddy gere certificados HTTPS e HTTP/2 automaticamente, o que faz dele uma boa opção para proxy de analytics. Confirme que o seu servidor Caddy tem espaço em disco suficiente se ativar a configuração de cache.

Resolução de problemas

Todos os visitantes aparecem da mesma localização

Quando todos os visitantes mostram uma única localização geográfica (normalmente a região do seu servidor), o proxy não está a encaminhar corretamente os IPs reais dos visitantes.

Resolução:

  1. Garanta que o seu proxy define x-flowsery-real-ip com o IP real do visitante (e não com o IP do servidor) ao encaminhar pedidos para o endpoint /events do Flowsery Analytics.
  2. Se o Caddy estiver atrás da Cloudflare ou de outra edge, {remote_host} é esse proxy a montante, não o visitante. Use {http.request.header.Cf-Connecting-Ip} (Cloudflare) ou {http.request.header.X-Real-Ip} (genérico).