--- name: AA migrado para VM ADV-22 (proxy-bridge) 2026-05-04 description: Scraper AA agora usa aa-bridge na VM ADV-22 (porta 40504) que encaminha pra proxy-seller multi-país. AA-solver Chrome dedicado tentado mas inviável (IP BR da VM bloqueado pelo AA). type: project originSessionId: da5514be-fbd6-46e5-a3de-cf03a5dda20d --- # AA via VM ADV-22 — 2026-05-04 ## Contexto Saída direta do servidor scraper 173.208.187.154 caída (todos bridges proxy-seller direto timeout). AA estava **100% quebrado**: `success:false, error:"Todas tentativas falharam"`. User pediu: "colocar VM na AA" + "proxy-seller de fallback caso precisamos". ## O que foi feito ### 1. aa-bridge na VM ADV-22 (`/opt/aa-bridge`) Cópia do `/opt/skymilhas/scrapers/proxy-bridge-aa.js` rodando na VM: - `index.js` (proxy-chain ProxyChain.Server) listen `0.0.0.0:40504` - Health/rotate endpoints em `0.0.0.0:40505` - `proxy-economy.js` helper (rotação 20min, rate limit 10/min, idle detection) - 15 países: `US, BR, GB, DE, FR, CA, AU, IT, ES, NL, MX, AR, CL, CO, PT` - Upstream: `res.proxy-seller.com:10000` com auth `apid0d63b6f503d8af9 + 23pueqs10RdIKi4P` - Sessão sticky `aa` rotaciona com `setInterval(20min)` se houve uso systemd `/etc/systemd/system/aa-bridge.service` (User=customer, Restart=always). Enabled & active. ### 2. Scraper AA env-driven (`/opt/skymilhas/scrapers/aadvantage/index.js`) Adicionado `var PROXY_BRIDGE_HOST = process.env.AA_PROXY_BRIDGE_HOST || '127.0.0.1';` antes de `PROXY_BRIDGE_PORT`. Substituído todos `http://localhost:` → `'http://' + PROXY_BRIDGE_HOST + ':'` (linhas 125, 179, 194, 213) — proxy-server do Chrome + health/rotate/reset. Backup: `index.js.bak-pre-vm-bridge-`. PM2: `env AA_PROXY_BRIDGE_HOST=100.91.20.22 pm2 restart scraper-american-aadvantage --update-env` + `pm2 save` (persistido em /root/.pm2/dump.pm2). **Fallback:** alterar env de volta `AA_PROXY_BRIDGE_HOST=127.0.0.1` reverte ao bridge no servidor (que está quebrado pela saída direta caída — só serve se essa for restaurada). ### 3. aa-solver Chrome NA VM — **descartado** Tentei criar `/opt/aa-solver/aa-solver.mjs` (porta 9093 + CDP 9227) espelhando smiles/gol-solver. **Não serve**: IP residencial brasileiro da VM (V.tal BH) é bloqueado pelo AA na primeira request (`homepage bloqueada title='' bodyLen=0`). Diferente de Smiles/GOL/TAP que aceitam IP BR, AA filtra país de origem agressivamente. Arquivos em `/opt/aa-solver/` ficaram (desativados via `systemctl disable --now aa-solver aa-watchdog.timer`). Backups dos service units também presentes. ## Validação ### Bridge VM operacional ✓ ```bash curl http://100.91.20.22:40505/health # {"status":"ok","country":"US","port":40504,...,"uptime":"45s"} ``` ### Scraper AA usa VM bridge ✓ PM2 logs mostram `[ProxyBridge-AA] Rotacao: US/aa... -> BR/aa... -> GB/aa...` (15 países alternando). Sessão criada em `aa-bridge.service` da VM, não no servidor. ### AA continua quebrado ✗ (problema separado) Todos os 15 IPs proxy-seller rotacionados retornam **`Homepage: "www.aa.com" (197c)`** — Akamai bloqueia 197 bytes (página parcial). Pool proxy-seller queimado para o domínio `aa.com`. Mesmo problema que aconteceu com TAP em 2026-04-23 (Kasada blacklist) — só que agora pra AA. ## Arquitetura (estado atual) ``` scraper-aa (3013) └→ Chrome puppeteer-extra+stealth no servidor └→ --proxy-server=http://100.91.20.22:40504 ← VM bridge (NOVO) └→ res.proxy-seller.com:10000 com sessão US|BR|GB|DE|FR|... └→ aa.com → 403 Akamai (197b body) — bloqueio externo ``` ## Próximos passos possíveis (não executados) 1. **Tentar Chrome real na VM via aa-bridge**: aa-solver lança Chrome com `--proxy-server=http://127.0.0.1:40504` (bridge local da VM) — combina IP US + fingerprint Chrome real. Se Akamai estava bloqueando puppeteer fingerprint, isso pode passar. 2. **Trocar puppeteer-extra por puppeteer-real-browser ou Camoufox** no scraper atual (igual Smiles fez). 3. **Esperar pool proxy-seller esfriar** (24-48h) — IPs queimados podem voltar. 4. **Adicionar Tailscale exit node residencial US** (pelo PC de alguém nos US se possível). **Why:** Jesiel pediu VM rotando AA. A infra está pronta e funcional — só o pool proxy-seller que está queimado externamente para o domínio aa.com. **How to apply (rollback):** ```bash # Voltar AA pro bridge servidor (quando saída direta voltar): sudo env AA_PROXY_BRIDGE_HOST=127.0.0.1 pm2 restart scraper-american-aadvantage --update-env sudo pm2 save # Restaurar index.js antes do patch: sudo cp /opt/skymilhas/scrapers/aadvantage/index.js.bak-pre-vm-bridge-* /opt/skymilhas/scrapers/aadvantage/index.js sudo pm2 restart scraper-american-aadvantage # Parar bridge VM (se quiser): sshpass ssh -p 2222 customer@100.91.20.22 'sudo systemctl disable --now aa-bridge' ```