Ergo Proxy - L'agent proxy inversé de la gestion locale du domaine.
La gestion de plusieurs applications exécutées sur différents ports s'est facilitée via des domaines locaux personnalisés.
Voir plus sur les exemples
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 :) L'objectif d'Ergo est d'être un simple proxy inversé qui suit la philosophie Unix de ne faire qu'une seule chose et de bien le faire. La simplicité signifie aucune magie impliquée. Juste un proxy inverse flexible qui étend la déclaration bien connue /etc/hosts .
Retour
Ce projet est constamment en développement, cependant, il est prêt à l'emploi. N'hésitez pas à fournir des commentaires ainsi qu'à des problèmes ouverts. Toutes les suggestions et contributions sont les bienvenues. :)
Pour obtenir de l'aide et des commentaires, vous pouvez nous trouver sur # Ergo-Proxy Channel sur https://gopher.slack.com
Traiter plusieurs applications localement et devoir se souvenir de chaque port représentant chaque microservice est frustrant. Je voulais un moyen simple d'attribuer à chaque service un domaine local approprié. Ergo résout ce problème.
Ce sont les seules façons officielles d'installer Ergo.
brew tap cristianoliveira/tap
brew install ergo
Pour installer la dernière version officielle
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh | sh
Ou pour installer une version spécifique
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
Vous pouvez également trouver les exécutables Windows dans la version.
Avertissement: j'utilise quotidiennement des systèmes basés sur UNIX, donc je ne suis pas en mesure de tester chaque construction seul. :(
nix profile install ' github:cristianoliveira/nixpkgs#ergoProxy 'Plus d'exemples Voir: https://github.com/cristianoliveira/nixpkgs
go install github.com/cristianoliveira/ergo
Assurez-vous d'avoir $GOPATH/bin dans votre chemin: export PATH=$PATH:$GOPATH/bin
Ergo recherche un fichier .ergo dans le répertoire actuel. Il doit contenir les noms et l'URL des services suivant le même format que /etc/hosts ( domain + space + url ). La principale différence est qu'elle considère également le port spécifié.
Exécutez ergo local Il tentera de se lier à localhost:80 et écoutez les demandes de vos services comme "sous-ddmains", par exemple. http://serviceone.localhost et http://servicetwo.localhost . (Vérifiez les exemples pour en savoir plus)
Remarque: il peut nécessiter que Sudo se lie au port 80.
Vous pouvez lui donner un port différent par ergo local -p <port> et y accéder via http://serviceone.localhost:<port> .
Vous pouvez également ajouter une boucle différente dans /etc/hosts comme echo '127.0.0.1 localapp' >> /etc/hosts et exécuter ergo local -domain localapp pour accéder à vos services via http://serviceone.localapp et http://servicetwo.localapp .
Vous devez définir la configuration http://127.0.0.1:2000/proxy.pac sur votre configuration de réseau système.
Ergo est livré avec une commande de configuration qui peut le configurer pour vous. Les systèmes actuels pris en charge sont:
ergo setup < operation-system >En cas d'erreurs / cela ne fonctionne pas, veuillez consulter la session de configuration détaillée ci-dessous.
echo "ergoproxy http://localhost:3000" > .ergo
ergo run
Maintenant, vous devriez pouvoir accéder: http://ergoproxy.dev . Ergo redirige tout ce qui se termine par .dev vers l'URL configurée.
Vous ne devez pas utiliser le domaine .dev par défaut, nous vous suggérons .test
set ERGO_DOMAIN=.test
echo "ergoproxy http://localhost:3000" > .ergo
ergo list # you shouldn't see any quotas in the output
ergo run
Vous devriez maintenant pouvoir accéder: http://ergoproxy.test . Ergo redirige tout ce qui se termine par. .test vers l'URL configurée.
Simple, non? Aucune magie impliquée.
Voulez-vous ajouter plus de services? C'est facile, ajoutez simplement plus de lignes dans .ergo :
echo "otherservice http://localhost:5000" >> .ergo
ergo list
ergo run
Redémarrez le serveur Ergo et accès: http://otherservice.dev
ergo add otherservice http://localhost:5000 est un raccourci pour les lignes en ajoutant à ./.ergo
Ergo accepte différentes configurations comme l'exécution dans différents port (par défaut: 2000) et domain de modification (par défaut: dev). Vous pouvez trouver toutes ces configurations sur l'aide d'Ergo exécutant ergo -h .
Afin d'utiliser les domaines Ergo, vous devez le définir comme proxy. Définissez le http://127.0.0.1:2000/proxy.pac sur:
Network Preferences > Advanced > Proxies > Automatic Proxy Configuration
Settings > Network and Internet > Proxy > Use setup script
Sur Ubuntu
System Settings > Network > Network Proxy > Automatic
Pour d'autres distributions, consultez votre gestionnaire de réseau et recherchez la configuration de proxy. Utilisez la configuration du navigateur comme alternative.
Les navigateurs peuvent être configurés pour utiliser un proxy spécifique. Utilisez cette méthode comme alternative à la configuration à l'échelle du système.
Gardez à l'esprit que si vous avez demandé le site avant de définir correctement le proxy, vous devez réinitialiser le cache du navigateur ou modifier le nom du service. Dans incognito Windows, le cache est désactivé par défaut, vous pouvez donc les utiliser si vous ne souhaitez pas supprimer le cache
Vous ne devez pas non plus utiliser le domaine .dev par défaut, nous vous suggérons .test
Sortez Chrome et démarrez-le à l'aide de l'option suivante:
# 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 et entrez la valeur http://localhost:2000/proxy.pac ci-dessous network.proxy.autoconfig_url -> http://localhost:2000/proxy.pac
Afin d'utiliser Ergo comme proxy Web sur le terminal, vous devez définir la variable http_proxy . (Uniquement pour Linux / OSX)
export http_proxy= " http://localhost:2000 " Comme alternative, vous pouvez voir les scripts à l'intérieur /resources pour exécuter une configuration éphémère. Ces scripts définissent le proxy uniquement pendant que ergo s'exécute.
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-feature Version Golang minimale requise go1.22 . Nous vous recommandons d'utiliser GVM pour gérer vos versions Go.
Ensuite, courez simplement:
gvm use $( cat .gvmrc ) make allmake test
make test-integration # Requires admin permission so use it carefully.Mit