Ergo Proxy: el agente de proxy inverso para la gestión de dominios locales.
La gestión de múltiples aplicaciones que se ejecutan en diferentes puertos facilitados a través de dominios locales personalizados.
Ver más sobre ejemplos
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 :) El objetivo de Ergo es ser un simple proxy inverso que sigue a la filosofía Unix de hacer solo una cosa y hacerlo bien. La simplicidad significa que no hay magia involucrada. Solo un proxy inverso flexible que extiende la declaración bien conocida /etc/hosts .
Comentario
Este proyecto está constantemente experimentando el desarrollo, sin embargo, está listo para usar. Siéntase libre de proporcionar comentarios y problemas abiertos. Todas las sugerencias y contribuciones son bienvenidas. :)
Para obtener ayuda y comentarios, puede encontrarnos en el canal #Ergo-Proxy en https://gopher.slack.com
Tratar con múltiples aplicaciones localmente y tener que recordar cada puerto que representa cada microservicio es frustrante. Quería una forma simple de asignar a cada servicio un dominio local adecuado. Ergo resuelve este problema.
Importante estas son las únicas formas oficiales de instalar ERGO.
brew tap cristianoliveira/tap
brew install ergo
Para instalar la última versión oficial
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh | sh
O para instalar una versión 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
También puede encontrar los ejecutables de Windows en la versión.
Descargo de responsabilidad: uso sistemas basados en UNIX a diario, por lo que no puedo probar cada compilación solo. :(
nix profile install ' github:cristianoliveira/nixpkgs#ergoProxy 'Más ejemplos Ver: https://github.com/cristianoliveira/nixpkgs
go install github.com/cristianoliveira/ergo
Asegúrese de tener $GOPATH/bin en su camino: export PATH=$PATH:$GOPATH/bin
Ergo busca un archivo .ergo dentro del directorio actual. Debe contener los nombres y la URL de los servicios que siguen el mismo formato que /etc/hosts ( domain + space + url ). La principal diferencia es que también considera el puerto especificado.
Ejecute ergo local intentará vincularse a localhost:80 y escuchar las solicitudes de sus servicios como "SubdMains", por ejemplo. http://serviceone.localhost y http://servicetwo.localhost . (Verifique los ejemplos para obtener más)
Nota: puede requerir que sudo se una al puerto 80.
Puede darle un puerto diferente por ergo local -p <port> y acceder a él a través de http://serviceone.localhost:<port> .
También puede agregar un bucleback diferente en /etc/hosts como echo '127.0.0.1 localapp' >> /etc/hosts y ejecutar ergo local -domain localapp para acceder a sus servicios a través de http://serviceone.localapp y http://servicetwo.localapp .
Debe establecer la configuración http://127.0.0.1:2000/proxy.pac en la configuración de la red de su sistema.
Ergo viene con un comando de configuración que puede configurarlo para usted. Los sistemas actuales admitidos son:
ergo setup < operation-system >En caso de errores / no funciona, mire la sesión de configuración detallada a continuación.
echo "ergoproxy http://localhost:3000" > .ergo
ergo run
Ahora debería poder acceder: http://ergoproxy.dev . Ergo redirige cualquier cosa que termine con .dev a la URL configurada.
No debe usar el dominio .dev predeterminado, sugerimos .test en su lugar (consulte el #58) a menos que su servicio admita HTTPS fuera de la caja y ya tenga un certificado
set ERGO_DOMAIN=.test
echo "ergoproxy http://localhost:3000" > .ergo
ergo list # you shouldn't see any quotas in the output
ergo run
Ahora debería poder acceder a: http://ergoproxy.test . Ergo redirige cualquier cosa que termine con .test a la URL configurada.
Simple, ¿verdad? No hay magia involucrada.
¿Quieres agregar más servicios? Es fácil, solo agregue más líneas en .ergo :
echo "otherservice http://localhost:5000" >> .ergo
ergo list
ergo run
Reinicie el servidor ERGO y el acceso: http://otherservice.dev
ergo add otherservice http://localhost:5000 es una taquigrafía para agregar líneas a ./.ergo
ERGO acepta diferentes configuraciones como Ejecutar en diferentes port (predeterminado: 2000) y Cambiar domain (predeterminado: dev). Puede encontrar todas estas configuraciones en la ayuda de Ergo ejecutando ergo -h .
Para usar los dominios ERGO, debe establecerlo como un proxy. Establezca el http://127.0.0.1:2000/proxy.pac en:
Network Preferences > Advanced > Proxies > Automatic Proxy Configuration
Settings > Network and Internet > Proxy > Use setup script
En ubuntu
System Settings > Network > Network Proxy > Automatic
Para otras distribuciones, consulte su administrador de red y busque la configuración proxy. Use la configuración del navegador como alternativa.
Los navegadores se pueden configurar para usar un proxy específico. Use este método como alternativa a la configuración de todo el sistema.
Tenga en cuenta que si solicitó el sitio antes de configurar el proxy correctamente, debe restablecer el caché del navegador o cambiar el nombre del servicio. En incognito Windows, el caché se deshabilita de forma predeterminada, por lo que puede usarlos si no desea eliminar el caché
Además, no debe usar el dominio .dev predeterminado, sugerimos .test en su lugar (consulte el #58) a menos que su servicio admita HTTPS fuera de la caja y ya tenga un certificado
Salga de Chrome y comience con la siguiente opción:
# 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 ingrese el valor http://localhost:2000/proxy.pac a continuación network.proxy.autoconfig_url -> http://localhost:2000/proxy.pac
Para usar ERGO como su proxy web en Terminal, debe establecer la variable http_proxy . (Solo para Linux/OSX)
export http_proxy= " http://localhost:2000 " Como alternativa, puede ver los scripts adentro /resources para ejecutar una configuración efímera. Esos scripts establecen el proxy solo mientras ergo se está ejecutando.
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-feature Versión mínima de Golang requerida go1.22 . Recomendamos usar GVM para administrar sus versiones GO.
Entonces simplemente ejecute:
gvm use $( cat .gvmrc ) make allmake test
make test-integration # Requires admin permission so use it carefully.MIT