Ergo Proxy - Agen proxy terbalik untuk manajemen domain lokal.
Manajemen beberapa aplikasi yang berjalan di berbagai port yang berbeda menjadi mudah melalui domain lokal khusus.
Lihat lebih banyak contoh
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 :) Tujuan Ergo adalah menjadi proxy terbalik sederhana yang mengikuti filosofi UNIX hanya melakukan satu hal dan melakukannya dengan baik. Kesederhanaan berarti tidak ada sihir yang terlibat. Hanya proxy terbalik yang fleksibel yang memperluas deklarasi yang terkenal /etc/hosts .
Masukan
Proyek ini terus -menerus mengalami pengembangan, namun siap digunakan. Jangan ragu untuk memberikan umpan balik serta masalah terbuka. Semua saran dan kontribusi dipersilakan. :)
Untuk bantuan dan umpan balik, Anda dapat menemukan kami di saluran #Ergo-Proxy di https://gopher.slack.com
Berurusan dengan banyak aplikasi secara lokal, dan harus mengingat setiap port yang mewakili setiap layanan mikro membuat frustrasi. Saya ingin cara sederhana untuk menetapkan setiap layanan domain lokal yang tepat. Ergo memecahkan masalah ini.
Penting Ini adalah satu -satunya cara resmi untuk menginstal Ergo.
brew tap cristianoliveira/tap
brew install ergo
Untuk menginstal versi resmi terbaru
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh | sh
Atau untuk menginstal versi tertentu
curl -s https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.sh v0.2.5 | sh
Dari PowerShell Run:
Invoke-WebRequest https://raw.githubusercontent.com/cristianoliveira/ergo/master/install.ps1 -out ./install.ps1; ./install.ps1
Anda juga dapat menemukan Windows Executable dalam rilis.
Penafian: Saya menggunakan sistem berbasis UNIX setiap hari, jadi saya tidak dapat menguji setiap bangunan sendirian. :(
nix profile install ' github:cristianoliveira/nixpkgs#ergoProxy 'Lebih banyak contoh lihat: https://github.com/cristianoliveira/nixpkgs
go install github.com/cristianoliveira/ergo
Pastikan Anda memiliki $GOPATH/bin di jalur Anda: export PATH=$PATH:$GOPATH/bin
Ergo mencari file .ergo di dalam direktori saat ini. Itu harus berisi nama dan URL dari layanan yang mengikuti format yang sama sebagai /etc/hosts ( domain + space + url ). Perbedaan utama adalah juga mempertimbangkan port yang ditentukan.
Jalankan ergo local itu akan berusaha untuk mengikat ke localhost:80 dan mendengarkan permintaan ke layanan Anda sebagai "subdmains" misalnya. http://serviceone.localhost dan http://servicetwo.localhost . (Periksa contoh untuk lebih lanjut)
Catatan: Mungkin mengharuskan sudo untuk mengikat ke port 80.
Anda dapat memberikannya port yang berbeda dengan ergo local -p <port> dan mengaksesnya melalui http://serviceone.localhost:<port> .
Anda juga dapat menambahkan loopback yang berbeda di /etc/hosts seperti echo '127.0.0.1 localapp' >> /etc/hosts dan menjalankan ergo local -domain localapp untuk mengakses layanan Anda melalui http://serviceone.localapp dan http://servicetwo.localapp .
Anda perlu mengatur konfigurasi http://127.0.0.1:2000/proxy.pac pada konfigurasi jaringan sistem Anda.
Ergo dilengkapi dengan perintah pengaturan yang dapat mengonfigurasinya untuk Anda. Sistem saat ini yang didukung adalah:
ergo setup < operation-system >Dalam hal kesalahan / tidak berhasil, silakan lihat sesi konfigurasi terperinci di bawah ini.
echo "ergoproxy http://localhost:3000" > .ergo
ergo run
Sekarang Anda harus dapat mengakses: http://ergoproxy.dev . Ergo mengarahkan kembali apa pun yang diakhiri dengan .dev ke URL yang dikonfigurasi.
Anda tidak boleh menggunakan domain .dev default, kami sarankan .test sebagai gantinya (lihat #58) kecuali layanan Anda mendukung https di luar kotak dan Anda sudah memiliki sertifikat
set ERGO_DOMAIN=.test
echo "ergoproxy http://localhost:3000" > .ergo
ergo list # you shouldn't see any quotas in the output
ergo run
Sekarang Anda harus dapat mengakses: http://ergoproxy.test . Ergo mengarahkan kembali apa pun yang diakhiri dengan .test ke URL yang dikonfigurasi.
Sederhana, kan? Tidak ada sihir yang terlibat.
Apakah Anda ingin menambahkan lebih banyak layanan? Mudah, cukup tambahkan lebih banyak baris di .ergo :
echo "otherservice http://localhost:5000" >> .ergo
ergo list
ergo run
Mulai ulang server ERGO dan akses: http://otherservice.dev
ergo add otherservice http://localhost:5000 adalah singkatan untuk menambahkan baris ke ./.ergo
Ergo menerima konfigurasi yang berbeda seperti dijalankan di port yang berbeda (default: 2000) dan ubah domain (default: dev). Anda dapat menemukan semua konfigurasi ini pada bantuan Ergo yang menjalankan ergo -h .
Untuk menggunakan domain ERGO, Anda perlu mengaturnya sebagai proxy. Atur http://127.0.0.1:2000/proxy.pac di:
Network Preferences > Advanced > Proxies > Automatic Proxy Configuration
Settings > Network and Internet > Proxy > Use setup script
Di Ubuntu
System Settings > Network > Network Proxy > Automatic
Untuk distribusi lainnya, periksa manajer jaringan Anda dan cari konfigurasi proxy. Gunakan konfigurasi browser sebagai alternatif.
Browser dapat dikonfigurasi untuk menggunakan proxy tertentu. Gunakan metode ini sebagai alternatif untuk konfigurasi sistem-lebar.
Ingatlah bahwa jika Anda meminta situs sebelum mengatur proxy dengan benar, Anda harus mengatur ulang cache browser atau mengubah nama layanan. Di incognito Windows Cache dinonaktifkan secara default, sehingga Anda dapat menggunakannya jika Anda tidak ingin menghapus cache
Anda juga tidak boleh menggunakan domain .dev default, kami sarankan .test sebagai gantinya (lihat #58) kecuali layanan Anda mendukung https di luar kotak dan Anda sudah memiliki sertifikat
Keluar dari Chrome dan mulai menggunakan opsi berikut:
# 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 dan masukkan nilai http://localhost:2000/proxy.pac di bawah network.proxy.autoconfig_url -> http://localhost:2000/proxy.pac
Untuk menggunakan ERGO sebagai proxy web Anda di terminal, Anda harus mengatur variabel http_proxy . (Hanya untuk Linux/OSX)
export http_proxy= " http://localhost:2000 " Sebagai alternatif, Anda dapat melihat skrip di dalam /resources untuk menjalankan pengaturan fana. Script -skrip itu hanya mengatur proxy saat ergo sedang berjalan.
git checkout -b my-new-featuregit commit -am 'Add some feature'git push origin my-new-feature Minimal Diperlukan Versi Golang go1.22 . Kami merekomendasikan menggunakan GVM untuk mengelola versi GO Anda.
Lalu cukup jalankan:
gvm use $( cat .gvmrc ) make allmake test
make test-integration # Requires admin permission so use it carefully.Mit