O fluxo de trabalho que você montou no n8n abre dez páginas de produto toda manhã e grava os preços em uma planilha. Na primeira semana não há problema. Depois a lista sobe para duzentos produtos, o fluxo passa a enviar requisições em sequência a partir do único endereço IP do seu servidor e o nó HTTP Request fica vermelho: primeiro 429, depois 403. Ou o caso oposto: a API de destino mostra o preço correto só para requisições vindas de um país específico, e o seu servidor n8n está em outro. Nos dois casos o ajuste procurado é o mesmo: fazer as requisições de saída do n8n passarem por um proxy.
Neste artigo explicamos os dois lugares em que um proxy é definido no n8n: a opção Proxy do nó HTTP Request e as variáveis de ambiente de uma instalação self-hosted. Vemos, em ordem, como as credenciais são escritas no endereço, qual ajuste prevalece sobre qual, a diferença entre o n8n Cloud e o seu próprio servidor e os erros mais comuns. Também separamos o assunto do proxy reverso (reverse proxy), que é o que parte das pessoas que buscam "n8n proxy" realmente procura. O fluxo de exemplo acompanha preços em um site publicado para treino.
O que é o n8n e onde ele entra no scraping?
O n8n é uma ferramenta de automação em que você monta fluxos de trabalho ligando caixas (nós, "nodes" em inglês) com linhas. Um nó de gatilho inicia o fluxo (agendador, webhook, formulário), e os nós seguintes buscam os dados, transformam e gravam em algum lugar. Você pode usar a ferramenta na nuvem do próprio n8n (n8n Cloud) ou instalar no seu servidor (self-hosted). Essa distinção é decisiva no assunto proxy.
No scraping, dois nós fazem o trabalho. O nó HTTP Request envia uma requisição a um endereço e recebe a resposta; o nó HTML extrai dessa resposta os campos que você quer, com seletores CSS. Essa dupla funciona bem em páginas cujo conteúdo já vem pronto do servidor e em APIs que retornam JSON. Em páginas cujo conteúdo é montado no navegador com JavaScript, o HTTP Request enxerga só um esqueleto vazio; explicamos a diferença em Páginas estáticas e dinâmicas. Para escrever seletores, veja Seletor CSS ou XPath.
O ponto forte do n8n é o que se faz com os dados depois: gravar na planilha, comparar com o valor anterior, avisar quando há mudança. Ele não é a ferramenta certa para uma varredura de milhares de páginas; nessa escala é preciso um framework como o Scrapy ou uma infraestrutura de extração de dados. Em Como extrair dados de um site comparamos qual método basta em cada caso.
"n8n proxy" são dois assuntos diferentes: qual você procura?
Nas sugestões de busca, ao lado de "n8n proxy" aparecem também as palavras proxy hops, nginx e reverse. Elas não têm relação com o ajuste tratado neste artigo:
| Proxy direto (forward proxy) | Proxy reverso (reverse proxy) | |
|---|---|---|
| Sentido do tráfego | Requisições que saem do n8n | Requisições que chegam ao n8n |
| Para que serve | Define o endereço IP e o país de onde a requisição sai | Publica o n8n com domínio e HTTPS |
| Ferramenta típica | O endpoint do provedor de proxy | nginx, Caddy, Traefik |
| Ajuste no n8n | HTTP Request → Proxy, HTTP_PROXY, HTTPS_PROXY | N8N_PROXY_HOPS, variável da URL do webhook |
| Sintoma | 407, ECONNREFUSED, 403 / 429 no site de destino | URL do webhook aparecendo como localhost, IP do cliente errado |
Se você roda o n8n atrás do nginx, a página da documentação do n8n sobre a configuração da URL do webhook atrás de um proxy reverso pede duas coisas: definir N8N_PROXY_HOPS como 1 (o padrão é 0, e a variável informa quantos proxies reversos há na frente do n8n) e fazer o último proxy da cadeia repassar os cabeçalhos X-Forwarded-For, X-Forwarded-Host e X-Forwarded-Proto. Esses ajustes não afetam em nada as suas requisições de saída. A diferença entre os dois conceitos e um exemplo com nginx estão em Forward proxy e reverse proxy. O restante do artigo trata do proxy direto.
Como definir o proxy no nó HTTP Request?
O ajuste não fica entre os campos principais do nó, e sim na seção Options, bem no final; por isso ele não aparece à primeira vista.
- Abra o nó HTTP Request no seu fluxo e preencha os campos Method e URL.
- Na seção Options, no final dos parâmetros, clique em Add option.
- Adicione a opção Proxy da lista.
- No campo que aparece, escreva o endereço do proxy com o esquema:
http://user:pass@pr.proxynet.io:8000 - Execute o nó sozinho com Execute step e confira a saída.
O texto de exemplo do campo é e.g. http://myproxy:3128; ou seja, o n8n espera aqui uma URL completa. Na versão atual que instalamos localmente para este artigo, um endereço escrito sem esquema (user:pass@pr.proxynet.io:8000) não gerou erro: a requisição saiu direto, sem passar pelo proxy. Com um endereço começando por socks5:// o resultado foi o mesmo: o campo é para proxy HTTP. A documentação do nó HTTP Request diz claramente que essa opção tem prioridade sobre o ajuste global feito com HTTP_PROXY, HTTPS_PROXY e ALL_PROXY. Assim, mesmo com um proxy corporativo definido no servidor, você consegue fazer um único nó sair por outro endpoint.
Onde ficam o usuário e a senha?
O nó não tem um campo separado de usuário ou senha para o proxy. As credenciais vão dentro do endereço, no formato usuario:senha@. A seção Authentication do nó vai para o site de destino, não para o proxy; escrever a senha do proxy ali não resolve um 407.
Se a sua senha tiver caracteres como @, :, / ou #, o endereço é dividido no lugar errado. Escreva esses caracteres com codificação percentual: %40 no lugar de @, %3A no lugar de :. No nosso teste local, a senha pa@ss:1 escrita como pa%40ss%3A1 foi interpretada corretamente no proxy. O detalhe dos dois métodos de autenticação está em Autenticação de proxy: user:pass ou whitelist de IP.
Uma nota de segurança: o campo Proxy é texto puro e não entra no cofre criptografado de credenciais do n8n (Credentials). Quando você exporta o fluxo como JSON e compartilha, a senha do proxy vai junto dentro do arquivo; limpe o campo antes de compartilhar.
Dá para usar whitelist de IP no n8n?
Para um n8n no seu próprio servidor com endereço IP fixo, sim: você adiciona o IP do servidor à lista de permitidos no painel do proxy, e o endereço é escrito sem senha, http://pr.proxynet.io:8000. No n8n Cloud esse método não é confiável. Na página da documentação sobre os endereços IP do Cloud, o n8n diz que os IPs de saída não são fixos e podem mudar sem aviso. O endereço que você libera hoje pode deixar de valer amanhã. No Cloud, conecte-se com usuário e senha.
Como usar variáveis de ambiente em uma instalação self-hosted?
Em vez de escrever o proxy nó por nó, você pode definir um para todo o processo do n8n. A página de variáveis de ambiente de deploy do n8n lista quatro variáveis:
| Variável | Função |
|---|---|
HTTP_PROXY | O tráfego HTTP sem criptografia que sai dos nós passa por este endereço |
HTTPS_PROXY | O tráfego com TLS (HTTPS) que sai dos nós passa por este endereço |
ALL_PROXY | Vale para os dois quando as duas variáveis mais específicas não estão definidas |
NO_PROXY | Lista separada por vírgulas de hosts acessados diretamente, sem proxy |
Em uma instalação com Docker Compose, as variáveis entram na seção environment do serviço:
services:
n8n:
image: docker.n8n.io/n8nio/n8n
environment:
- HTTP_PROXY=http://user:pass@pr.proxynet.io:8000
- HTTPS_PROXY=http://user:pass@pr.proxynet.io:8000
- NO_PROXY=localhost,127.0.0.1,postgres,redisO valor de HTTPS_PROXY começar com http:// não é erro de digitação: o nome da variável não indica o esquema do proxy, e sim qual tráfego vai para ele. Em Uso de proxy com o wget explicamos como essas variáveis são definidas no sistema operacional; aqui tratamos só de três armadilhas próprias do n8n.
A variável em minúsculas se sobrepõe à maiúscula. A mesma página da documentação avisa que, no pacote proxy-from-env usado pelo n8n, nomes em minúsculas como http_proxy têm prioridade sobre os maiúsculos quando os dois estão definidos. Se outra pessoa colocou uma variável em minúsculas na sua imagem Docker ou no servidor, o seu valor de HTTP_PROXY é ignorado em silêncio. Dentro do contêiner, confira as duas com env | grep -i proxy.
Não deixe a lista NO_PROXY vazia. Se o n8n também conversa por HTTP com o banco de dados da mesma rede, com o Redis ou com uma API interna, essas requisições também vão para o proxy e muito provavelmente travam ali. Inclua na lista os nomes de host internos e localhost.
Nem todo nó respeita essas variáveis. Os nós que usam o auxiliar HTTP do próprio n8n enxergam o ajuste. Em alguns nós que trazem a própria biblioteca cliente há registros informando que a variável não é considerada (por exemplo, a issue #19652 do repositório do n8n foi aberta em 2025 para o nó RSS Read e fechada depois). Antes de colocar um nó crítico em produção, teste com o passo de verificação mais abaixo.
As variáveis são lidas quando o processo do n8n inicia; depois de alterá-las, é preciso reiniciar o contêiner ou o serviço.
n8n Cloud e self-hosted: qual caminho está aberto em cada um?
| n8n Cloud | Self-hosted (Docker, npm) | |
|---|---|---|
| HTTP Request → opção Proxy | Disponível | Disponível |
HTTP_PROXY / HTTPS_PROXY | Não dá para definir, porque o ambiente do servidor não é seu | Definidas, afetam todo o processo |
| Proxy com whitelist de IP | Não recomendado: os IPs de saída mudam sem aviso | Funciona em servidor com IP fixo |
| IP de saída sem proxy | Endereços variáveis da infraestrutura em nuvem do n8n | O endereço do seu próprio servidor |
Se você usa o Cloud, o único caminho é a opção do nó. Em uma instalação self-hosted os dois estão abertos; pense na variável de ambiente como a "saída padrão" e na opção do nó como "esta requisição sai por outro lugar".
Fluxo de exemplo: acompanhar o preço de um produto
Montamos o exemplo sobre o books.toscrape.com, um site publicado para treino de scraping. No seu trabalho, veja primeiro se o site de destino tem uma API oficial ou um painel de vendedor; se tiver, use isso em vez de analisar HTML. Se não, leia o arquivo robots.txt do site e os termos de uso. Como ler as regras do robots.txt está em O que é robots.txt.
O fluxo tem seis nós:
- Schedule Trigger: inicia o fluxo uma vez por dia. No acompanhamento de preços, uma consulta a cada minuto raramente é necessária.
- Lista de produtos: pegue os endereços de uma planilha do Google Sheets ou de um nó Edit Fields. Cada linha traz um campo
url. - Loop Over Items: processa a lista item por item. Deixe Batch Size em
1. - HTTP Request: escreva a expressão
{{ $json.url }}no campoURL, defina o Proxy em Options e deixe o formato como texto na opção Response. - HTML: escolha Extract HTML Content como operação e defina os campos a extrair com seletores CSS.
- Wait: espera alguns segundos e volta ao início do laço.
Quando o laço termina, você grava os dados em uma planilha, compara com o preço do dia anterior em um nó If e envia um aviso se houver diferença.
O nó HTTP Request fica assim no JSON do fluxo exportado:
{
"parameters": {
"url": "={{ $json.url }}",
"options": {
"proxy": "http://user:pass@pr.proxynet.io:8000",
"timeout": 20000,
"response": {
"response": { "fullResponse": true, "responseFormat": "text" }
}
}
},
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2
}No nó HTML, três linhas bastam para este site:
| Key | CSS Selector | Return Value |
|---|---|---|
titulo | h1 | Text |
preco | p.price_color | Text |
estoque | p.availability | Text |
Ative Trim Values e Clean Up Text em Options; assim as quebras de linha e os espaços sobrando na linha de estoque são removidos. A saída é um texto como £51.77; para transformar em número, retire o símbolo da moeda e ajuste o separador decimal no nó seguinte.
Uma montagem mais completa, com correspondência de produtos, histórico de preços e alerta por limite, está em Como monitorar preços da concorrência no e-commerce, e o lado de produto na nossa página de monitoramento de preços.
Como montar limite de taxa e novas tentativas no n8n?
Quando o n8n recebe uma lista, se você não disser o contrário ele envia a requisição de todos os itens em sequência e sem esperar. Usar proxy não torna esse comportamento educado; só muda o endereço de onde as requisições saem. A carga que o site de destino enxerga é você quem precisa limitar. A página "Handle rate limits" da documentação do n8n mostra três caminhos nativos:
- Batching (HTTP Request → Options): com
Items per Batchvocê define quantas requisições saem de uma vez e comBatch Interval (ms)a espera entre os lotes. É o caminho mais curto e não exige código. - Loop Over Items + Wait: a montagem que usamos no exemplo acima. Você vê a espera depois de cada requisição de forma explícita e pode colocar outros nós no meio.
- Retry On Fail (aba Settings do nó): tenta de novo a requisição que falhou; com
Wait Between Tries (ms)você informa o tempo entre as tentativas.
Ativar o Retry On Fail para qualquer erro não é o certo. 429 e 503 se resolvem com espera; 403 e 407 não, e enviar a mesma requisição cinco vezes só gera tráfego desnecessário. Na tabela de Códigos de status HTTP no web scraping reunimos em quais códigos tentar de novo e em quais parar; a lógica do limite de taxa está em 429 Too Many Requests. Se quiser ramificar pelo código de status, ative Include Response Headers and Status e Never Error na opção Response do HTTP Request e depois olhe o campo statusCode em um nó If.
É preciso um nó separado ou código para a rotação?
Alguns templates de scraping para n8n trazem trechos de JavaScript que guardam uma lista de proxies em um nó Code e escolhem o próximo a cada requisição. Se o que você tem é uma lista de endereços IP avulsos, isso é necessário. Com um endpoint rotativo, não: você se conecta a um único endereço como pr.proxynet.io:8000 e o provedor troca o IP de saída a cada nova conexão. Do lado do n8n, o endereço no campo Proxy nunca muda. O detalhe do mecanismo está em O que é rotação de IP e como funciona, e o lado de produto na página de Proxies rotativos.
No sentido contrário, há trabalhos em que o IP nunca pode mudar. Se a API de um parceiro só aceita requisições de endereços liberados e você usa o n8n Cloud, sair por um endereço fixo como Proxies ISP, em vez dos IPs variáveis do Cloud, resolve o problema. Tratamos esse cenário em IP estático para acesso a API.
Como usar proxy no nó AI Agent?
Você pode ligar o HTTP Request ao nó AI Agent do n8n como ferramenta (tool); o modelo chama essa ferramenta quando precisa ler uma página ou uma API. O HTTP Request ligado como ferramenta tem a mesma seção Options, então a opção Proxy funciona aqui do mesmo jeito. A documentação acrescenta mais uma opção para esse uso: Optimize Response filtra os campos JSON ou extrai só o texto do HTML antes de entregar a resposta ao modelo, e reduz a quantidade de tokens gastos.
Em uma montagem com agente, atenção a dois pontos. Limite na definição da ferramenta os endereços que o agente pode acessar: em vez de deixar a URL inteira por conta do modelo, defina um domínio fixo e um parâmetro de caminho que o modelo preenche. Já as requisições ao provedor do modelo de linguagem não passam pelo HTTP Request; para colocá-las atrás de um proxy são necessárias variáveis de ambiente em uma instalação self-hosted, e vale testar à parte se o nó do modelo respeita a variável. Como os agentes acessam a web está em Agentes de IA: planejamento, ferramentas e memória e Acesso seguro à web para LLMs. Para páginas que exigem um navegador de verdade, veja Playwright MCP.
Como confirmar que o proxy está funcionando?
Como um endereço escrito errado pode ser ignorado sem gerar erro, teste sempre o ajuste:
- Coloque dois nós HTTP Request em um fluxo vazio. O endereço dos dois deve ser um serviço que devolve o IP de onde a requisição veio (por exemplo
https://api.ipify.org?format=json). - No primeiro, deixe a opção Proxy vazia; no segundo, preencha.
- Execute os dois. O primeiro nó deve mostrar o IP do seu servidor n8n (ou do Cloud), e o segundo o IP de saída do proxy. Se os dois endereços forem iguais, o proxy não está ativo.
- Se você usa variáveis de ambiente, faça o mesmo teste com um nó com o campo Proxy vazio: se o IP mudou, a variável está sendo lida.
O detalhe dos passos está em Como testar um proxy.
Erros comuns e o que significam
| Erro | De onde vem | Causa provável | O que fazer |
|---|---|---|---|
ECONNREFUSED | Servidor n8n | Porta do proxy errada ou firewall bloqueando a saída | Copie de novo o endereço no painel e confira a liberação de saída para essa porta |
407 Proxy Authentication Required | Proxy | Senha errada, caractere especial sem codificação ou IP fora da whitelist | Escreva as credenciais dentro do endereço, com codificação percentual |
400 Bad Request (só em destinos HTTPS) | Proxy | O cliente envia a requisição direto ao proxy em vez de abrir um túnel | Atualize o n8n; veja a nota abaixo |
ETIMEDOUT / ECONNRESET | Rede | O proxy está inacessível ou o destino é muito lento | Aumente o valor de Options → Timeout e escolha um local de saída mais próximo |
ENOTFOUND | DNS | Nome de host do proxy digitado errado | Copie o nome no painel e escreva de novo |
403 / 429 do destino | Site de destino | O proxy funciona; o problema é velocidade ou tipo de IP | Reduza o ritmo com Batching e Wait e diagnostique a causa |
A linha do 400 conta uma história própria do n8n. O nó HTTP Request usa por baixo a biblioteca Axios, e o suporte nativo a proxy do Axios é conhecido por enviar a requisição direto ao proxy em destinos HTTPS, em vez de abrir um túnel CONNECT. A issue #9169 do repositório do n8n documenta que esse comportamento causava o erro 400 no nó. A issue é de 2024. Na versão atual que testamos, o nó abriu um túnel CONNECT no proxy para um destino HTTPS e buscou a página sem problemas. Se em uma versão antiga do n8n os endereços HTTP passam pelo proxy e os HTTPS retornam 400, o primeiro passo é atualizar.
Se você vê no navegador o aviso de que o servidor proxy não está respondendo, o problema não tem relação com o n8n; veja O servidor proxy não está respondendo.
Casos de uso
- Acompanhamento de preço e estoque: fluxos que rodam uma vez por dia e avisam quando há mudança. A montagem é a mesma do exemplo acima; o lado de produto está na nossa página de monitoramento de preços.
- Conferência de conteúdo que muda conforme a localização: executar o mesmo nó com proxies de saída em países diferentes para comparar como a mesma página aparece. Para uma cobertura ampla de países, usam-se Proxies residenciais.
- Coleta de conteúdo em pequena escala: manchetes, número de anúncios, catálogos públicos. Quando a escala cresce, faz mais sentido migrar para uma solução de web crawler.
Erros de configuração frequentes
- Escrever a senha do proxy na seção Authentication. Essa seção vai para o site de destino. As credenciais do proxy ficam dentro do endereço.
- Não escrever o esquema. Escreva
http://pr.proxynet.io:8000em vez depr.proxynet.io:8000; um endereço sem esquema pode ser ignorado sem gerar erro. - Esquecer o limite de taxa depois de adicionar o proxy. Uma lista de cem itens, sem Batching ou Wait, envia cem requisições de uma vez.
- Automatizar páginas que exigem login ou contêm dados pessoais. Um proxy não torna legítimo um fluxo que descumpre os termos da plataforma ou a LGPD; resumimos o quadro legal em Web scraping é legal?.
Guia de decisão
| Necessidade | Recomendação |
|---|---|
| Uso o n8n Cloud e quero que um único nó saia pelo proxy | HTTP Request → Options → Proxy, com usuário e senha |
| No n8n self-hosted, todos os nós devem sair pelo proxy | HTTP_PROXY, HTTPS_PROXY, NO_PROXY; depois, verificação nó por nó |
| Há um ajuste global, mas um nó precisa sair por outro país | Opção Proxy nesse nó; ela prevalece sobre o ajuste global |
| Um IP diferente a cada requisição | Endpoint rotativo; não escreva rotação em um nó Code |
| A outra parte vai liberar o meu IP | Proxy com IP fixo (ISP) ou o seu próprio servidor com IP fixo |
| A página carrega com JavaScript e o nó HTML volta vazio | O HTTP Request não basta; automação de navegador ou o endpoint JSON que o site usa por trás |
Perguntas frequentes
Dá para usar proxy no n8n Cloud?
Sim, a opção Proxy do nó HTTP Request também existe no Cloud; já as variáveis de ambiente não podem ser usadas. Como os IPs de saída do Cloud não são fixos, conecte-se ao proxy com usuário e senha, e não com whitelist de IP.
Para que serve o N8N_PROXY_HOPS?
Ele informa quantos proxies reversos (nginx, Caddy, balanceador de carga em nuvem) existem na frente do n8n; o valor padrão é 0. Não tem relação com as requisições de saída nem com o ajuste de proxy deste artigo.
O que tem prioridade: o ajuste Proxy do nó ou a variável de ambiente?
O ajuste do nó. É o que a documentação do n8n diz; no nosso teste local, com a variável de ambiente apontando para uma porta fechada, o nó com a opção Proxy preenchida saiu pelo próprio proxy.
O Zapier tem o mesmo ajuste?
Não. O passo Webhooks do Zapier tem campos de endereço, dados, cabeçalhos e autenticação básica; não há campo de proxy. Para passar a requisição por um proxy, é preciso colocar no meio um pequeno serviço seu: o Zapier chama esse serviço, e o serviço vai ao destino pelo proxy.
Sou obrigado a manter a senha do proxy em texto puro dentro do fluxo?
Se você usa a opção do nó, sim: o campo é texto puro. Em uma instalação self-hosted, o caminho para tirar a senha do fluxo são as variáveis de ambiente: as credenciais ficam na configuração do servidor e não entram no JSON do fluxo. Se você tem um servidor com IP fixo, a whitelist de IP elimina a senha por completo.
Dá para extrair dados de qualquer site com o HTTP Request?
Não. O nó não executa JavaScript, então em páginas cujo conteúdo é montado no navegador o campo que você procura não está na resposta. Sites com proteção contra bots também podem devolver uma página de verificação, com ou sem proxy. Nesse caso, o que cabe fazer não é forçar a proteção, e sim olhar a API oficial do site ou as opções de parceria de dados.
Em resumo
No n8n o proxy é definido em dois lugares: o campo Proxy da seção Options do nó HTTP Request e as variáveis HTTP_PROXY, HTTPS_PROXY e NO_PROXY de uma instalação self-hosted. As credenciais vão dentro do endereço, o ajuste do nó prevalece sobre o global e N8N_PROXY_HOPS diz respeito só a instalações atrás de um proxy reverso. O proxy não substitui o limite de taxa: reduza o ritmo com Batching ou Wait, espere quando aparecer um 429 e prefira a API oficial quando ela existir. Você pode comparar os tipos de IP adequados aos seus fluxos na página de nossos serviços de proxy.




