Ergo Proxy - обратный прокси -агент для управления локальным доменом.
Управление несколькими приложениями, работающими по разным портам, простым через пользовательские локальные домены.
Посмотрите больше на примеры
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 :) Цель Ergo состоит в том, чтобы быть простым обратным прокси, который следует за философией UNIX по выполнению только одной вещи и делаю это хорошо. Простота не означает магию. Просто гибкий обратный прокси, который расширяет хорошо известное /etc/hosts -объявление.
Обратная связь
Этот проект постоянно подвергается разработке, однако, он готов к использованию. Не стесняйтесь предоставлять обратную связь, а также открытые проблемы. Все предложения и взносы приветствуются. :)
Для получения помощи и обратной связи вы можете найти нас на канале #Ergo-Proxy на https://gopher.slack.com
Работа с несколькими приложениями локально, и необходимость помнить каждый порт, представляющий каждый микросервис, разочаровывает. Я хотел простой способ назначить каждой службе правильный локальный домен. Ergo решает эту проблему.
Важно это единственные официальные способы установки ERGO.
brew tap cristianoliveira/tap
brew install ergo
Чтобы установить последнюю официальную версию
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh | sh
Или установить определенную версию
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh v0.2.5 | sh
От PowerShell Run:
Invoke-WebRequest https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.ps1 -out ./install.ps1; ./install.ps1
Вы также можете найти исполняемые файлы Windows в выпуске.
Отказ от ответственности: я ежедневно использую системы UNIX, поэтому я не могу проверить каждую сборку в одиночку. :(
nix profile install ' github:cristianoliveira/nixpkgs#ergoProxy 'Больше примеров см.: Https://github.com/cristianoliveira/nixpkgs
go install github.com/cristianoliveira/ergo
Убедитесь, что у вас есть $GOPATH/bin на вашем пути: export PATH=$PATH:$GOPATH/bin
Ergo ищет файл .ergo в текущем каталоге. Он должен содержать имена и URL Сервисов, следуя тому же формату, что и /etc/hosts ( domain + space + url ). Основное отличие состоит в том, что он также учитывает указанный порт.
Запустите ergo local Он попытается связаться с localhost:80 и прослушать запросы в ваши услуги как «поддольные», например. http://serviceone.localhost и http://servicetwo.localhost . (Проверьте примеры для получения дополнительной информации)
Примечание. Это может потребовать, чтобы SUDO привязал к порту 80.
Вы можете дать ему другой порт от ergo local -p <port> и получить доступ к нему через http://serviceone.localhost:<port> .
Вы также можете добавить другую петлю в /etc/hosts , такие как echo '127.0.0.1 localapp' >> /etc/hosts , и запустить ergo local -domain localapp чтобы получить доступ к вашим услугам через http://serviceone.localapp и http://servicetwo.localapp .
Вам необходимо установить конфигурацию http://127.0.0.1:2000/proxy.pac в вашей системной сети конфигурации.
ERGO поставляется с командой настройки, которая может настроить ее для вас. Текущие поддерживаемые системы:
ergo setup < operation-system >В случае ошибок / это не работает, пожалуйста, посмотрите на подробную сеанс конфигурации ниже.
echo "ergoproxy http://localhost:3000" > .ergo
ergo run
Теперь вы должны иметь возможность получить доступ: http://ergoproxy.dev . Ergo перенаправляет все, что заканчивается .dev на настроенный URL.
Вы не должны использовать домен .dev по умолчанию, мы предлагаем .test
set ERGO_DOMAIN=.test
echo "ergoproxy http://localhost:3000" > .ergo
ergo list # you shouldn't see any quotas in the output
ergo run
Теперь вы должны иметь возможность получить доступ: http://ergoproxy.test . Ergo перенаправляет все, что заканчивается .test на настроенный URL.
Просто, верно? Нет магии.
Вы хотите добавить больше услуг? Это легко, просто добавьте больше линий в .ergo :
echo "otherservice http://localhost:5000" >> .ergo
ergo list
ergo run
Перезапустите сервер ERGO и доступ: http://otherservice.dev
ergo add otherservice http://localhost:5000 - это сокращение для добавления строк в ./.ergo
ERGO принимает разные конфигурации, такие как Run в другом port (по умолчанию: 2000) и изменение domain (по умолчанию: dev). Вы можете найти все это конфигурации на справочнике ERGO, выполняя ergo -h .
Чтобы использовать домены ERGO, вам необходимо установить его как прокси. Установите http://127.0.0.1:2000/proxy.pac on:
Network Preferences > Advanced > Proxies > Automatic Proxy Configuration
Settings > Network and Internet > Proxy > Use setup script
На Ubuntu
System Settings > Network > Network Proxy > Automatic
Для других распределений проверьте свой сетевой диспетчер и ищите конфигурацию прокси. Используйте конфигурацию браузера в качестве альтернативы.
Браузеры могут быть настроены на использование конкретного прокси. Используйте этот метод в качестве альтернативы общесистемной конфигурации.
Имейте в виду, что если вы запросили сайт, прежде чем правильно установить прокси, вы должны сбросить кэш браузера или изменить имя службы. В кеш incognito windows по умолчанию отключен, поэтому вы можете использовать их, если не хотите удалять кэш
Также вам не следует использовать домен .dev по умолчанию, мы предлагаем .test вместо этого (см. #58), если ваша служба не поддерживает HTTPS из коробки, и у вас уже есть сертификат
Выйдите из Chrome и запустите его, используя следующий вариант:
# 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 и введите значение http://localhost:2000/proxy.pac ниже network.proxy.autoconfig_url -> http://localhost:2000/proxy.pac
Чтобы использовать ERGO в качестве вашего веб -прокси на терминале, вы должны установить переменную http_proxy . (Только для Linux/OSX)
export http_proxy= " http://localhost:2000 " В качестве альтернативы вы можете увидеть сценарии внутри /resources для запуска эфемерной установки. Эти сценарии устанавливают прокси только во время работы ergo .
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-feature Минимальная требуемая версия Golang go1.22 . Мы рекомендуем использовать GVM для управления вашими версиями GO.
Тогда просто беги:
gvm use $( cat .gvmrc ) make allmake test
make test-integration # Requires admin permission so use it carefully.Грань