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 channel บน 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
นอกจากนี้คุณยังสามารถค้นหา Executables ของ 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 และฟังคำขอไปยังบริการของคุณว่า "subdmains" เช่น http://serviceone.localhost และ http://servicetwo.localhost (ตรวจสอบตัวอย่างเพิ่มเติม)
หมายเหตุ: อาจ ต้องใช้ Sudo เพื่อผูกกับพอร์ต 80
คุณสามารถให้พอร์ตที่แตกต่างกันโดย ergo local -p <port> และเข้าถึงผ่าน http://serviceone.localhost:<port>
นอกจากนี้คุณยังสามารถเพิ่ม loopback ที่แตกต่างกันใน /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 บน:
Network Preferences > Advanced > Proxies > Automatic Proxy Configuration
Settings > Network and Internet > Proxy > Use setup script
บน Ubuntu
System Settings > Network > Network Proxy > Automatic
สำหรับการแจกแจงอื่น ๆ ให้ตรวจสอบตัวจัดการเครือข่ายของคุณและค้นหาการกำหนดค่าพร็อกซี ใช้การกำหนดค่าเบราว์เซอร์เป็นทางเลือก
เบราว์เซอร์สามารถกำหนดค่าให้ใช้พร็อกซีเฉพาะ ใช้วิธีนี้เป็นทางเลือกในการกำหนดค่าทั่วทั้งระบบ
โปรดทราบว่าหากคุณขอไซต์ก่อนที่จะตั้งค่าพร็อกซีอย่างถูกต้องคุณต้องรีเซ็ตแคชของเบราว์เซอร์หรือเปลี่ยนชื่อของบริการ ในแคช Windows incognito ถูกปิดใช้งานโดยค่าเริ่มต้นดังนั้นคุณสามารถใช้งานได้หากคุณไม่ต้องการลบแคช
นอกจากนี้คุณไม่ควรใช้โดเมน .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.มิกซ์