Skip to content

sh-lucas/goproxy

Repository files navigation

🔀 goproxy - Proxy Reverso em Go

Um servidor proxy reverso simples e configurável que roteia requests baseado em prefixos de URL.

📦 Instalação

Via go install

go install github.com/sh-lucas/goproxy@latest

Ou clonando o repositório

git clone https://github.com/sh-lucas/goproxy
cd goproxy
go build

📁 Estrutura do Projeto

.
├── goproxy.yml          # Configuração do proxy
├── main.go              # Código principal do proxy
├── goproxy              # Executável do proxy
├── start_servers.sh     # Script para iniciar sistema de teste
├── test_requests.sh     # Script para testar o roteamento
└── tests/
    ├── main.go          # Código do servidor de teste
    └── logServer        # Executável do servidor de teste

🚀 Como Usar

1. Instale o goproxy

# Via go install (recomendado)
go install github.com/sh-lucas/goproxy@latest

# Ou baixe e compile localmente
git clone https://github.com/sh-lucas/goproxy
cd goproxy
go build

2. Crie o arquivo de configuração

Copie o exemplo e edite conforme necessário:

cp goproxy.example.yml goproxy.yml
# Edite goproxy.yml com suas configurações

3. Execute o proxy

# Se instalado via go install
goproxy

# Se compilado localmente  
./goproxy

4. Para desenvolvimento/teste (apenas repositório local)

# De forma bem simples:
make run

# Inicia sistema de teste completo
./start_servers.sh

# Em outro terminal, testa o roteamento
./test_requests.sh

🎯 Roteamento

O arquivo de configuração de exemplo contém as seguintes rotas:

Request Destino Exemplo
/motor/* localhost:4001 GET /motor/abcGET http://localhost:4001/abc
/scan/* localhost:4002 GET /scan/testGET http://localhost:4002/test
/* (outros) localhost:4003 GET /qualquerGET http://localhost:4003/qualquer

⚙️ Configuração

Crie um arquivo goproxy.yml:

mainPort: 4000                # Porta do proxy
motor: localhost:4001         # Destino para /motor/*
scan: localhost:4002          # Destino para /scan/*
default: localhost:4003       # Destino padrão

🛠️ Comandos Manuais

Compilar o Proxy

go build .

Iniciar Servidor de Teste Manualmente

# Servidor na porta específica
./tests/logServer -p 4001

# Usar porta padrão (8080)
./tests/logServer

Compilar Servidor de Teste

Provavelmente está incorreto!!! Esses são leftovers:

cd tests
go build -o logServer main.go

🧪 Exemplos de Teste

# Teste motor
curl http://localhost:4000/motor/api/status

# Teste scan
curl http://localhost:4000/scan/document.pdf

# Teste default
curl http://localhost:4000/home/page

# Root do proxy
curl http://localhost:4000/

📝 Logs

Os servidores de teste mostram informações detalhadas sobre cada request:

  • Timestamp
  • Método HTTP
  • URL completa
  • Path
  • Query parameters
  • Headers

Isso permite visualizar exatamente como o proxy está roteando as requests! 🎉

About

Redirect requests from prefixes to the hosts you want.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •