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
إن التعامل مع تطبيقات متعددة محليًا ، والاضطرار إلى تذكر كل منفذ يمثل كل خدمة microservice أمر محبط. أردت طريقة بسيطة لتعيين كل خدمة مجال محلي مناسب. 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 Executables في الإصدار.
إخلاء المسئولية: أستخدم أنظمة قائمة على 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 والاستماع إلى طلبات لخدماتك كـ "Subdmains" على سبيل المثال. 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 بدلاً من ذلك (انظر #58) ما لم تدعم خدمتك HTTPS خارج المربع ولديك بالفعل شهادة
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 تكوينات مختلفة مثل التشغيل في 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
على أوبونتو
System Settings > Network > Network Proxy > Automatic
للحصول على توزيعات أخرى ، تحقق من مدير الشبكة الخاص بك وابحث عن تكوين الوكيل. استخدم تكوين المتصفح كبديل.
يمكن تكوين المتصفحات لاستخدام وكيل معين. استخدم هذه الطريقة كبديل للتكوين على مستوى النظام.
ضع في اعتبارك أنه إذا طلبت الموقع قبل تعيين الوكيل بشكل صحيح ، فيجب عليك إعادة تعيين ذاكرة التخزين المؤقت للمتصفح أو تغيير اسم الخدمة. في التخزين incognito Windows يتم تعطيل ذاكرة التخزين المؤقت افتراضيًا ، بحيث يمكنك استخدامها إذا كنت لا ترغب في حذف ذاكرة التخزين المؤقت
كما يجب ألا تستخدم مجال .dev الافتراضي ، نقترح .test بدلاً من ذلك (انظر #58) ما لم تدعم خدمتك HTTPS خارج المربع ولديك شهادة بالفعل
الخروج من الكروم وابدأ باستخدام الخيار التالي:
# 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.معهد ماساتشوستس للتكنولوجيا