Suporte/Guias de proxy
Guias de proxy

Proxy do Flowsery Analytics com DigitalOcean

Encaminhe o Flowsery Analytics através do DigitalOcean para evitar interferência de bloqueadores de anúncios e capturar dados de visitantes mais precisos. Este guia cobre tanto a App Platform como configurações baseadas em Droplets.

Opção 1: DigitalOcean App Platform

Se estiver a executar na DigitalOcean App Platform com Node.js, consulte o guia específico do framework que corresponde à sua stack:

A App Platform trata automaticamente do encaminhamento de IP através do cabeçalho X-Forwarded-For, por isso as configurações desses guias funcionam sem alterações.

Opção 2: DigitalOcean Droplet com Nginx

Se estiver a executar num Droplet da DigitalOcean com Nginx como servidor web ou reverse proxy, use a configuração seguinte.

1. Ligar-se ao seu Droplet

Terminal
ssh root@your-droplet-ip

2. Abrir a configuração do Nginx

Edite o ficheiro de configuração do site (normalmente em /etc/nginx/sites-available/your-site):

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

3. Adicionar os blocos location do proxy

Insira os seguintes blocos location na configuração do seu 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: Se já tiver um bloco location para /api/track, adicione data-api à tag de script do Flowsery Analytics para redirecionar os eventos. Por exemplo, data-api="/flowsery-events" envia os dados para /flowsery-events.

4. Testar e recarregar o Nginx

Valide a configuração para detetar erros de sintaxe:

Terminal
sudo nginx -t

Se o teste passar, recarregue o Nginx:

Terminal
sudo systemctl reload nginx

5. Opcional: ativar cache

Para melhorar o desempenho, configure uma zona de cache do 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;
}

Opção 3: DigitalOcean Spaces CDN

Se estiver a usar a DigitalOcean Spaces CDN à frente do seu Droplet, confirme que encaminha corretamente os IPs dos clientes:

  1. No painel da DigitalOcean, vá a Networking > CDN
  2. Confirme que a sua CDN está configurada para fazer passthrough dos cabeçalhos do pedido
  3. A CDN adiciona automaticamente cabeçalhos X-Forwarded-For
  4. A configuração do seu Nginx vai recolher os IPs dos visitantes a partir desses cabeçalhos

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>

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
  4. Verifique no seu painel do Flowsery Analytics se as localizações dos visitantes são apresentadas corretamente

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 inclui o cabeçalho x-flowsery-real-ip com o endereço IP real do visitante (e não o IP do servidor) ao encaminhar pedidos para o endpoint /events do Flowsery Analytics.
  2. Se o Nginx estiver atrás de outro proxy (Cloudflare, Vercel, etc.), $remote_addr será o IP do proxy a montante. Leia antes diretamente de $http_cf_connecting_ip ou $http_x_real_ip.