Proxy Ergo - o agente de proxy reverso para gerenciamento de domínio local.
O gerenciamento de vários aplicativos que atendem por portas diferentes facilitadas através de domínios locais personalizados.
Veja mais sobre exemplos
python3 -m http.server 8800 & # launch a web server listening on 8800
echo " http://localhost:8800 mylocalsite " > .ergo # adds a service "mylocalsite" to ergo
ergo local & # it may need sudo since it binds to port 80
curl http://mylocalsite.localhost # make a HTTP request to the ergo service :) O objetivo de Ergo é ser um proxy reverso simples que segue a filosofia do UNIX de fazer apenas uma coisa e fazê -lo bem. Simplicidade significa nenhuma mágica envolvida. Apenas um proxy reverso flexível que estende a declaração bem conhecida /etc/hosts .
Opinião
Este projeto está constantemente em desenvolvimento, no entanto, está pronto para uso. Sinta -se à vontade para fornecer feedback e questões abertas. Todas as sugestões e contribuições são bem -vindas. :)
Para obter ajuda e feedback, você pode nos encontrar no canal #ergo-proxy em https://gopher.slack.com
Lidar com vários aplicativos localmente e ter que lembrar cada porta que representa cada microsserviço é frustrante. Eu queria uma maneira simples de atribuir a cada serviço um domínio local adequado. O ergo resolve esse problema.
IMPORTANTES Essas são as únicas maneiras oficiais de instalar o ergo.
brew tap cristianoliveira/tap
brew install ergo
Para instalar a versão oficial mais recente
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh | sh
Ou para instalar uma versão específica
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh v0.2.5 | sh
De PowerShell Run:
Invoke-WebRequest https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.ps1 -out ./install.ps1; ./install.ps1
Você também pode encontrar os executáveis do Windows na versão.
Isenção de responsabilidade: eu uso sistemas baseados em UNIX diariamente, por isso não consigo testar cada compilação sozinha. :(
nix profile install ' github:cristianoliveira/nixpkgs#ergoProxy 'Mais exemplos, consulte: https://github.com/cristianoliveira/nixpkgs
go install github.com/cristianoliveira/ergo
Certifique -se de ter $GOPATH/bin em seu caminho: export PATH=$PATH:$GOPATH/bin
O ergo procura um arquivo .ergo dentro do diretório atual. Ele deve conter os nomes e o URL dos serviços seguindo o mesmo formato que /etc/hosts ( domain + space + url ). A principal diferença é que também considera a porta especificada.
Execute ergo local , tentará se ligar ao localhost:80 e ouvir solicitações aos seus serviços como "subdmains", por exemplo. http://serviceone.localhost e http://servicetwo.localhost . (Exemplos de verificação para mais)
Nota: pode exigir que o sudo se ligue à porta 80.
Você pode fornecer uma porta diferente por ergo local -p <port> e acessá -la através de http://serviceone.localhost:<port> .
Você também pode adicionar um loopback diferente em /etc/hosts como echo '127.0.0.1 localapp' >> /etc/hosts e executar ergo local -domain localapp para acessar seus serviços através de http://serviceone.localapp e http://servicetwo.localapp .
Você precisa definir a configuração http://127.0.0.1:2000/proxy.pac na configuração da sua rede do sistema.
O ergo vem com um comando de configuração que pode configurá -lo para você. Os sistemas atuais suportados são:
ergo setup < operation-system >Em caso de erros / não funciona, observe a sessão de configuração detalhada abaixo.
echo "ergoproxy http://localhost:3000" > .ergo
ergo run
Agora você deve acessar: http://ergoproxy.dev . O ergo redireciona qualquer coisa que termine com .dev para o URL configurado.
Você não deve usar o domínio .dev padrão, sugerimos .test (consulte #58), a menos que seu serviço suporte https fora da caixa e você já tenha um certificado
set ERGO_DOMAIN=.test
echo "ergoproxy http://localhost:3000" > .ergo
ergo list # you shouldn't see any quotas in the output
ergo run
Agora você deve acessar: http://ergoproxy.test . O ergo redireciona qualquer coisa que termine com .test para o URL configurado.
Simples, certo? Nenhuma magia envolvida.
Quer adicionar mais serviços? É fácil, basta adicionar mais linhas em .ergo :
echo "otherservice http://localhost:5000" >> .ergo
ergo list
ergo run
Reinicie o servidor Ergo e o acesso: http://otherservice.dev
ergo add otherservice http://localhost:5000 é uma abreviação para anexar linhas a ./.ergo
O ERGO aceita diferentes configurações, como execução em diferentes port (padrão: 2000) e altere domain (padrão: dev). Você pode encontrar todas essas configurações na ajuda de Ergo executando ergo -h .
Para usar os domínios ERGO, você precisa defini -lo como um proxy. Defina o http://127.0.0.1:2000/proxy.pac em:
Network Preferences > Advanced > Proxies > Automatic Proxy Configuration
Settings > Network and Internet > Proxy > Use setup script
No Ubuntu
System Settings > Network > Network Proxy > Automatic
Para outras distribuições, verifique seu gerenciador de rede e procure a configuração de proxy. Use a configuração do navegador como alternativa.
Os navegadores podem ser configurados para usar um proxy específico. Use este método como uma alternativa à configuração em todo o sistema.
Lembre -se de que, se você solicitou o site antes de definir o proxy corretamente, precisará redefinir o cache do navegador ou alterar o nome do serviço. No Cache do Windows incognito , está desativado por padrão, para que você possa usá -los se não desejar excluir o cache
Além disso, você não deve usar o domínio .dev padrão, sugerimos .test (consulte #58), a menos que seu serviço suporte https fora da caixa e você já tenha um certificado
Saia do Chrome e inicie -o usando a seguinte opção:
# Linux
$ google-chrome --proxy-pac-url=http://localhost:2000/proxy.pac
# OS X
$ open -a " Google Chrome " --args --proxy-pac-url=http://localhost:2000/proxy.pacAutomatic Proxy configuration URL e digite o valor http://localhost:2000/proxy.pac abaixo network.proxy.autoconfig_url -> http://localhost:2000/proxy.pac
Para usar o ERGO como proxy da Web no terminal, você deve definir a variável http_proxy . (Apenas para Linux/OSX)
export http_proxy= " http://localhost:2000 " Como alternativa, você pode ver os scripts internos /resources para executar uma configuração efêmera. Esses scripts definem o proxy apenas enquanto ergo está em execução.
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-feature Versão mínima necessária para Golang go1.22 . Recomendamos o uso da GVM para gerenciar suas versões GO.
Em seguida, basta correr:
gvm use $( cat .gvmrc ) make allmake test
make test-integration # Requires admin permission so use it carefully.Mit