Pular para o conteúdo
Glossary 7 min de leitura 1039 visualizações

Timeout de proxy

Timeout de proxy explicado! Descubra o que é o timeout de proxy, seu impacto no desempenho e como configurá-lo usando a GProxy para obter os melhores resultados.

Timeout de proxy

Um timeout de proxy HTTP define o tempo máximo que um servidor proxy vai esperar por uma resposta de um servidor de destino ou de um cliente antes de encerrar a conexão. Esse mecanismo é crucial para impedir que conexões travadas consumam recursos e para garantir uma experiência de uso fluida. Timeouts configurados corretamente são essenciais para manter a estabilidade e o desempenho do servidor proxy.

Entendendo os timeouts de proxy

Os timeouts de proxy são implementados para lidar com diversos cenários que podem levar a conexões sem resposta. Esses cenários incluem:

  • Servidores de destino lentos ou sem resposta: um servidor de destino pode demorar muito para processar uma requisição por causa de carga alta, problemas de rede ou erros no lado do servidor. Sem um timeout, o proxy esperaria indefinidamente, ocupando recursos valiosos.
  • Congestionamento de rede: o congestionamento de rede entre o proxy e o servidor de destino ou o cliente pode causar atrasos na transmissão de dados, resultando em conexões travadas.
  • Problemas no lado do cliente: um cliente pode parar de responder depois de enviar uma requisição, possivelmente por causa de um navegador que travou ou de uma perda de conectividade de rede.
  • Ataques de negação de serviço (DoS): invasores podem inundar um servidor proxy com requisições projetadas para levar muito tempo em processamento, esgotando na prática os recursos do servidor. Os timeouts ajudam a mitigar o impacto desses ataques.

Existem vários tipos de timeout relacionados ao funcionamento do proxy. Os mais comuns são:

  • Connect timeout: o tempo máximo que o proxy vai esperar para estabelecer uma conexão com o servidor de destino.
  • Read timeout: o tempo máximo que o proxy vai esperar para receber dados do servidor de destino depois que a conexão foi estabelecida.
  • Send timeout: o tempo máximo que o proxy vai esperar para enviar dados ao servidor de destino ou ao cliente.
  • Idle timeout: o tempo máximo que uma conexão pode permanecer ociosa (sem transmissão de dados) antes de ser fechada.

Configurando timeouts de proxy

A configuração dos timeouts de proxy depende do software de servidor proxy usado. Veja exemplos para alguns servidores proxy populares:

Apache HTTP Server (mod_proxy)

O módulo mod_proxy do Apache oferece várias diretivas para configurar timeouts:

  • ProxyTimeout: define o timeout em segundos tanto para operações de conexão quanto de leitura.

    apache <Proxy *> ProxyTimeout 60 </Proxy>

  • Timeout: define o timeout geral do servidor para receber uma resposta do cliente ou do servidor de backend. Isso pode afetar tanto as operações de conexão quanto as de leitura.

    apache Timeout 300

  • ProxyReceiveBufferSize: define o tamanho do buffer usado para receber dados do servidor de backend. Um buffer menor às vezes ajuda com problemas de timeout, por forçar transferências de dados mais frequentes.

    apache ProxyReceiveBufferSize 8192

Reinicie o Apache depois de alterar o arquivo de configuração.

sudo systemctl restart apache2

Nginx

O Nginx oferece um controle mais granular sobre timeouts por meio de várias diretivas:

  • proxy_connect_timeout: especifica o timeout para estabelecer uma conexão com o servidor upstream.

    nginx http { server { location / { proxy_pass http://backend_server; proxy_connect_timeout 60s; } } }

  • proxy_read_timeout: especifica o timeout para receber uma resposta do servidor upstream.

    nginx http { server { location / { proxy_pass http://backend_server; proxy_read_timeout 120s; } } }

  • proxy_send_timeout: especifica o timeout para enviar uma requisição ao servidor upstream.

    nginx http { server { location / { proxy_pass http://backend_server; proxy_send_timeout 60s; } } }

  • keepalive_timeout: especifica o timeout para conexões keep-alive.

    nginx http { keepalive_timeout 75s; }

Recarregue o Nginx depois de alterar o arquivo de configuração.

sudo nginx -s reload

Squid

O Squid usa a diretiva timeout no seu arquivo de configuração (squid.conf) para controlar diversos timeouts:

  • request_timeout: o tempo máximo que o Squid vai esperar por uma requisição HTTP completa vinda do cliente.
  • connect_timeout: o tempo máximo que o Squid vai esperar para estabelecer uma conexão com o servidor de destino.
  • read_timeout: o tempo máximo que o Squid vai esperar para receber dados do servidor de destino.
  • client_lifetime: o tempo máximo que o Squid vai manter aberta uma conexão de cliente ociosa.

    squid request_timeout 30 seconds connect_timeout 60 seconds read_timeout 120 seconds client_lifetime 7200 seconds

Reinicie o Squid depois de modificar o arquivo de configuração.

sudo squid -k reconfigure

Comparação das diretivas de timeout

Recurso Apache (mod_proxy) Nginx Squid
Connect timeout ProxyTimeout proxy_connect_timeout connect_timeout
Read timeout ProxyTimeout proxy_read_timeout read_timeout
Send timeout N/A proxy_send_timeout N/A
Idle timeout N/A keepalive_timeout client_lifetime
Timeout geral Timeout N/A request_timeout

Boas práticas para configurar timeouts

  • Comece com padrões razoáveis: comece com valores moderados de timeout e ajuste-os com base no desempenho observado e nos logs de erro. Um bom ponto de partida pode ser 60 segundos para connect timeouts e 120 segundos para read timeouts.
  • Monitore os logs de erro: verifique regularmente os logs de erro do servidor proxy em busca de erros relacionados a timeout. Esses erros trazem informações valiosas sobre se os timeouts estão curtos demais ou se há outros problemas de fundo.
  • Ajuste conforme as condições de rede: se o servidor proxy opera em uma rede com latência alta ou congestionamento frequente, considere aumentar os valores de timeout.
  • Considere os requisitos da aplicação: aplicações diferentes têm níveis diferentes de tolerância a latência e timeouts. Ajuste os valores de acordo. Por exemplo, aplicações em tempo real podem exigir timeouts mais curtos do que aplicações de processamento em lote.
  • Implemente circuit breakers: para aplicações críticas, considere implementar o padrão circuit breaker Padrão Circuit Breaker da Microsoft{rel="nofollow"} junto com os timeouts. Circuit breakers podem impedir automaticamente que requisições sejam enviadas a servidores com falha, aumentando ainda mais a resiliência.
  • Testes de carga: faça testes de carga para simular padrões reais de tráfego e identificar possíveis problemas de timeout sob carga pesada. Isso ajuda a determinar os valores ideais de timeout para o ambiente específico.
  • Considerações de segurança: valores de timeout muito longos podem expor o servidor proxy a ataques de negação de serviço. Equilibre a necessidade de resiliência com as considerações de segurança.

Solução de problemas de timeout

Ao encontrar erros de timeout, considere os seguintes passos de diagnóstico:

  1. Verifique a conectividade de rede: garanta que o servidor proxy tenha uma conexão de rede estável tanto com o cliente quanto com o servidor de destino. Use ferramentas como ping e traceroute para diagnosticar problemas de rede.
  2. Verifique a carga do servidor: monitore o uso de CPU e memória tanto do servidor proxy quanto do servidor de destino. Carga alta pode causar atrasos e disparar timeouts.
  3. Analise os logs de erro: examine os logs de erro do servidor proxy em busca de erros específicos de timeout. Os logs devem informar o tipo de timeout, o servidor de destino envolvido e o horário do erro.
  4. Aumente os valores de timeout (temporariamente): como etapa de diagnóstico, aumente temporariamente os valores de timeout para ver se os erros desaparecem. Se desaparecerem, isso indica que os timeouts originais estavam curtos demais.
  5. Investigue o desempenho do servidor de destino: se o servidor de destino está consistentemente lento, investigue seu desempenho. Procure gargalos de banco de dados, código ineficiente ou outros problemas que possam estar causando atrasos.
  6. Revise a configuração do servidor proxy: confira novamente o arquivo de configuração do servidor proxy para garantir que as diretivas de timeout estão corretas e que não há configurações conflitantes.
  7. Monitore o tráfego de rede: use ferramentas de monitoramento de rede como tcpdump ou Wireshark para capturar e analisar o tráfego entre o cliente, o servidor proxy e o servidor de destino. Isso ajuda a identificar congestionamento de rede ou outros problemas.

Conclusão

Os timeouts de proxy são um componente crítico de um servidor proxy bem configurado. Ao entender os diferentes tipos de timeout e como configurá-los, você evita conexões travadas, melhora a estabilidade do servidor e aprimora a experiência do usuário. Timeouts bem configurados, combinados com monitoramento proativo e diagnóstico, são essenciais para manter uma infraestrutura de proxy robusta e confiável.

Atualizado: 26.01.2026
Voltar à categoria

Leia também

Glossary 3 min

O que é um proxy móvel? Proxies 4G/5G explicados

Um proxy móvel roteia o tráfego através de um dispositivo 4G/5G real, te dando um IP de operadora compartilhado por milhares de usuários reais — o tipo mais difícil de bloquear. Veja como funcionam e quando usá-los.

Glossary 3 min

O que é um proxy ISP? Proxies residenciais estáticos explicados

Um proxy ISP é um IP estático hospedado em datacenter mas registrado em um ISP residencial — confiança residencial com velocidade de datacenter e IP fixo. Veja como funcionam e quando usá-los.

Glossary 3 min

Proxy HTTP vs HTTPS: qual é a diferença?

Um proxy HTTP pode ler seu tráfego web; um proxy HTTPS o tunela criptografado via CONNECT. Veja a diferença real, o que o proxy consegue ver e qual usar.

Glossary 4 min

O que é um proxy? Guia completo para iniciantes

Um servidor proxy é um intermediário que esconde seu IP real roteando o tráfego por outro IP. Veja como os proxies funcionam, os principais tipos e como escolher o certo.

Glossary 4 min

SOCKS5 vs proxy HTTP: diferenças, velocidade e quando usar cada um

Proxies SOCKS5 e HTTP resolvem problemas diferentes. Um proxy HTTP entende tráfego web e consegue cacheá-lo ou filtrá-lo; o SOCKS5 encaminha às cegas qualquer conexão TCP/UDP — torrents, jogos, e-mail, não só navegação. Nenhum dos dois criptografa o tráfego sozinho. Veja exatamente quando cada um ganha.

Glossary 1 min

CDN e proxies: como funcionam

CDN e proxies — como funcionam juntos — um termo da área de proxies e tecnologias de rede.

Experimente nossos proxies

20,000+ proxies em 100+ países do mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.