Ergo Proxy - Der Reverse -Proxy -Agent für die lokale Domänenverwaltung.
Die Verwaltung mehrerer Apps, die über verschiedene Ports ausgeführt werden, wurden durch benutzerdefinierte lokale Domänen einfach.
Weitere Informationen zu Beispielen finden Sie in
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 :) Das Ziel von Ergo ist es, ein einfacher Reverse -Proxy zu sein, der der Unix -Philosophie folgt, nur eines zu tun und es gut zu machen. Einfachheit bedeutet keine Magie. Nur ein flexibler Reverse-Proxy, der die bekannte Erklärung /etc/hosts erweitert.
Rückmeldung
Dieses Projekt wird ständig entwickelt, es ist jedoch bereit zu verwenden. Fühlen Sie sich frei, Feedback sowie offene Probleme zu geben. Alle Vorschläge und Beiträge sind willkommen. :)
Für Hilfe und Feedback finden Sie uns auf #Ergo-Proxy Channel unter https://gopher.slack.com
Es ist frustrierend, mit mehreren Apps vor Ort zu handhaben und sich an jeden Port zu merken, der jedes Microservice darstellt. Ich wollte eine einfache Möglichkeit, jedem Dienst eine ordnungsgemäße lokale Domäne zuzuweisen. Ergo löst dieses Problem.
Wichtig Dies sind die einzigen offiziellen Möglichkeiten, um Ergo zu installieren.
brew tap cristianoliveira/tap
brew install ergo
So installieren Sie die neueste offizielle Version
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh | sh
Oder um eine bestimmte Version zu installieren
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh v0.2.5 | sh
Aus Powershell Run:
Invoke-WebRequest https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.ps1 -out ./install.ps1; ./install.ps1
Sie können auch die Windows Executables in Release finden.
Haftungsausschluss: Ich verwende täglich Unix-basierte Systeme, sodass ich jeden Build nicht alleine testen kann. :(
nix profile install ' github:cristianoliveira/nixpkgs#ergoProxy 'Weitere Beispiele siehe: https://github.com/cristianoliveira/nixpkgs
go install github.com/cristianoliveira/ergo
export PATH=$PATH:$GOPATH/bin Sie $GOPATH/bin
Ergo sucht nach einer .ergo -Datei im aktuellen Verzeichnis. Es muss die Namen und URL der Dienste enthalten, die demselben Format wie /etc/hosts folgen ( domain + space + url ). Der Hauptunterschied besteht darin, dass es auch den angegebenen Port berücksichtigt.
Führen Sie ergo local aus, es wird versuchen, an localhost:80 zu binden und nach Anfragen an Ihre Dienste als "Subdmains" zu hören. http://serviceone.localhost und http://servicetwo.localhost . (Überprüfen Sie Beispiele für mehr)
Hinweis: Möglicherweise muss Sudo an Port 80 binden.
Sie können ihm einen anderen Port geben, indem ergo local -p <port> über http://serviceone.localhost:<port> zugreifen.
Sie können auch einen anderen Loopback in /etc/hosts wie echo '127.0.0.1 localapp' >> /etc/hosts hinzufügen und ergo local -domain localapp ausführen, um über http://serviceone.localapp und http://servicetwo.localapp zuzugreifen.
Sie müssen die Konfiguration http://127.0.0.1:2000/proxy.pac auf Ihrer Systemnetzwerkkonfiguration festlegen.
Ergo wird mit einem Setup -Befehl geliefert, mit dem es für Sie konfiguriert werden kann. Die aktuellen unterstützten Systeme sind:
ergo setup < operation-system >Wenn Fehler / es nicht funktioniert, lesen Sie bitte die detaillierte Konfigurationssitzung unten.
echo "ergoproxy http://localhost:3000" > .ergo
ergo run
Jetzt sollten Sie in der Lage sein, zugreifen zu können: http://ergoproxy.dev . Ergo leitet alles um, was mit .dev zur konfigurierten URL endet.
Sie sollten die Standard .dev nicht verwenden, empfehlen wir .test stattdessen (siehe #58), es sei denn
set ERGO_DOMAIN=.test
echo "ergoproxy http://localhost:3000" > .ergo
ergo list # you shouldn't see any quotas in the output
ergo run
Jetzt sollten Sie in der Lage sein, zugreifen zu können: http://ergoproxy.test . Ergo leitet alles um, was mit .test auf die konfigurierte URL endet.
Einfach, richtig? Keine Magie beteiligt.
Möchten Sie weitere Dienste hinzufügen? Es ist einfach, fügen Sie einfach weitere Zeilen in .ergo hinzu:
echo "otherservice http://localhost:5000" >> .ergo
ergo list
ergo run
Starten Sie den Ergo -Server neu und Zugriff: http://otherservice.dev
ergo add otherservice http://localhost:5000 ist eine Kurzform, um Zeilen an die Anhänge von ./.ergo anzuhängen
Ergo akzeptiert verschiedene Konfigurationen wie Ausführungen in unterschiedlichem port (Standard: 2000) und Änderung domain (Standard: Dev). Alle diese Konfigurationen finden Sie in Ergos Hilfe mit ergo -h .
Um Ergo -Domänen zu verwenden, müssen Sie es als Proxy festlegen. Setzen Sie die http://127.0.0.1:2000/proxy.pac auf:
Network Preferences > Advanced > Proxies > Automatic Proxy Configuration
Settings > Network and Internet > Proxy > Use setup script
Auf Ubuntu
System Settings > Network > Network Proxy > Automatic
Weitere Verteilungen finden Sie in Ihrem Netzwerkmanager und suchen Sie nach Proxy -Konfiguration. Verwenden Sie die Browserkonfiguration als Alternative.
Browser können so konfiguriert werden, dass sie einen bestimmten Proxy verwenden. Verwenden Sie diese Methode als Alternative zur systemweiten Konfiguration.
Beachten Sie, dass Sie den Cache des Browsers zurücksetzen oder den Namen des Dienstes ändern müssen, wenn Sie die Website angefordert haben, bevor Sie den Proxy ordnungsgemäß eingestellt haben. In incognito ist Windows -Cache standardmäßig deaktiviert, sodass Sie sie verwenden können, wenn Sie den Cache nicht löschen möchten
Außerdem sollten Sie die Standard .dev nicht verwenden. Wir empfehlen .test stattdessen (siehe #58), es sei denn
Beenden Sie Chrome und starten Sie es mit der folgenden Option:
# 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 und geben Sie den Wert ein http://localhost:2000/proxy.pac unten network.proxy.autoconfig_url -> http://localhost:2000/proxy.pac
Um Ergo als Web -Proxy am Terminal zu verwenden, müssen Sie die Variable http_proxy festlegen. (Nur für Linux/OSX)
export http_proxy= " http://localhost:2000 " Als Alternative können Sie die Skripte in /resources für das Ausführen eines kurzlebigen Setups sehen. Diese Skripte setzen den Proxy nur, während ergo ausgeführt wird.
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-feature Minimal erforderlich Golang Version go1.22 . Wir empfehlen, GVM für die Verwaltung Ihrer GO -Versionen zu verwenden.
Dann einfach rennen:
gvm use $( cat .gvmrc ) make allmake test
make test-integration # Requires admin permission so use it carefully.MIT