Pular para o conteúdo principal

Variáveis de Ambiente

Todas as configurações do edgeProxy são feitas via variáveis de ambiente.

Configurações Core

VariávelPadrãoDescrição
EDGEPROXY_LISTEN_ADDR0.0.0.0:8080Endereço TCP para escutar
EDGEPROXY_DB_PATHrouting.dbCaminho para o banco SQLite
EDGEPROXY_REGIONsaIdentificador da região do POP

Sincronização do Banco

VariávelPadrãoDescrição
EDGEPROXY_DB_RELOAD_SECS5Intervalo para recarregar routing.db (segundos)

Afinidade de Cliente

VariávelPadrãoDescrição
EDGEPROXY_BINDING_TTL_SECS600TTL do binding do cliente (10 minutos)
EDGEPROXY_BINDING_GC_INTERVAL_SECS60Intervalo de garbage collection

Debug

VariávelPadrãoDescrição
DEBUG(não definido)Habilita logs de debug quando definido

Configurações TLS

VariávelPadrãoDescrição
EDGEPROXY_TLS_ENABLEDfalseHabilitar servidor TLS
EDGEPROXY_TLS_LISTEN_ADDR0.0.0.0:8443Endereço TLS
EDGEPROXY_TLS_CERT(nenhum)Caminho para certificado TLS (PEM)
EDGEPROXY_TLS_KEY(nenhum)Caminho para chave privada TLS (PEM)

Configurações DNS Interno

VariávelPadrãoDescrição
EDGEPROXY_DNS_ENABLEDfalseHabilitar servidor DNS
EDGEPROXY_DNS_LISTEN_ADDR0.0.0.0:5353Endereço DNS
EDGEPROXY_DNS_DOMAINinternalSufixo do domínio DNS

Configurações da API Auto-Discovery

VariávelPadrãoDescrição
EDGEPROXY_API_ENABLEDfalseHabilitar API Auto-Discovery
EDGEPROXY_API_LISTEN_ADDR0.0.0.0:8081Endereço da API
EDGEPROXY_HEARTBEAT_TTL_SECS60TTL do heartbeat do backend

Configurações de Replicação Built-in

VariávelPadrãoDescrição
EDGEPROXY_REPLICATION_ENABLEDfalseHabilitar replicação built-in
EDGEPROXY_REPLICATION_NODE_ID(hostname)Identificador único do nó
EDGEPROXY_REPLICATION_GOSSIP_ADDR0.0.0.0:4001Endereço UDP para protocolo gossip
EDGEPROXY_REPLICATION_TRANSPORT_ADDR0.0.0.0:4002Endereço QUIC para sync de dados
EDGEPROXY_REPLICATION_BOOTSTRAP_PEERS(nenhum)Lista de peers separados por vírgula
EDGEPROXY_REPLICATION_GOSSIP_INTERVAL_MS1000Intervalo de ping gossip
EDGEPROXY_REPLICATION_SYNC_INTERVAL_MS5000Intervalo de flush do sync
EDGEPROXY_REPLICATION_CLUSTER_NAMEedgeproxyNome do cluster para isolamento
EDGEPROXY_REPLICATION_MODEprimaryModo do nó: primary ou replica
EDGEPROXY_REPLICATION_MDNS_ENABLEDtrueHabilitar auto-descoberta mDNS
EDGEPROXY_REPLICATION_MDNS_SERVICE_TYPE_edgeproxy._udp.local.Tipo de serviço mDNS

Veja Replicação Built-in para documentação detalhada.

GeoIP

O banco de dados MaxMind GeoLite2 está embutido no binário - não requer download ou configuração externa.

Mapeamento País para Região

Mapeamento padrão em state.rs:

match iso_code {
// América do Sul
"BR" | "AR" | "CL" | "PE" | "CO" | "UY" | "PY" | "BO" | "EC" => "sa",

// América do Norte
"US" | "CA" | "MX" => "us",

// Europa
"PT" | "ES" | "FR" | "DE" | "NL" | "IT" | "GB" | "IE" | "BE" | "CH" => "eu",

// Fallback padrão
_ => "us",
}

Hot Reload

O banco de roteamento é automaticamente recarregado a cada EDGEPROXY_DB_RELOAD_SECS segundos. Para atualizar a configuração:

  1. Modifique o banco SQLite:

    sqlite3 routing.db "UPDATE backends SET healthy=0 WHERE id='sa-node-1'"
  2. Aguarde o reload (verifique os logs):

    INFO edge_proxy::db: routing reload ok, version=5 backends=9

Não é necessário reiniciar.

Logging

Níveis de Log

  • INFO (padrão): Mensagens de inicialização, reloads de roteamento
  • DEBUG (quando DEBUG=1): Detalhes de conexão, seleção de backend

Exemplo de Saída

INFO edge_proxy: starting edgeProxy region=sa listen=0.0.0.0:8080
INFO edge_proxy::proxy: edgeProxy listening on 0.0.0.0:8080
INFO edge_proxy::db: routing reload ok, version=1 backends=9
DEBUG edge_proxy::proxy: proxying 10.10.0.100 -> sa-node-1 (10.10.1.1:8080)