gondola: Mengapa tidak menggunakan proksi terbalik berasaskan YAML yang ringan dan ringkas?

王林
Lepaskan: 2024-08-12 06:08:07
asal
1070 orang telah melayarinya

gondola: Why not use a lightweight and simple YAML-based reverse proxy?

Apa itu gondola?

gondola ialah proksi terbalik yang dibuat oleh Go yang mudah digunakan dengan hanya menulis fail konfigurasi dalam YAML.

Ia boleh didapati di awesome-go.

Ia dilaksanakan hanya menggunakan perpustakaan standard Go dan mempunyai ciri berikut

  • Hos maya
    • Anda boleh menyediakan berbilang hos pada pelayan huluan.
  • Pemuat fail konfigurasi
    • Anda boleh menggunakan fail konfigurasi dalam format YAML.
  • TLS
    • Anda boleh menggunakan TLS dengan menyediakan sijil TLS.
  • Layankan fail statik
    • Anda boleh menyampaikan fail statik.
  • Log akses
    • Mengoutputkan log akses Proksi dan log akses pelayan Huluan.
  • Pengagihan binari
    • Mengedarkan binari tersusun silang.

Motivasi

Saya menjalankan blog bernama bmf-tech.com, yang saya bina sendiri dalam Go.

Blog ini dahulunya mempunyai proksi terbalik yang dibina menggunakan Nginx.

Seni bina sistem blog saya tidak rumit dan saya fikir proksi terbalik yang boleh dikendalikan dengan konfigurasi yang lebih mudah sudah memadai.

Jadi saya memutuskan untuk membina proksi terbalik saya sendiri yang boleh dikonfigurasikan dengan fail konfigurasi yang lebih ringkas dan bukannya fail konfigurasi dengan sintaks fleksibel seperti Nginx.

Saya sebenarnya menggunakan gondola dalam sistem blog saya sendiri, dan setakat ini ia mudah dan mudah dijalankan.

Cara menggunakan gondola

Anda boleh menggunakan gondola dengan menggunakan arahan go get atau dengan memuat turun Binari.

go get -u github.com/bmf-san/gondola
Salin selepas log masuk

Perduaan boleh didapati daripada keluaran.

Imej docker juga boleh didapati daripada bmf-san/gondola.

Setelah pelayan proksi (gondola) dan pelayan huluan dikonfigurasikan dalam fail konfigurasi, cuma mulakan gondola.

# example config.yaml
proxy: (default)
  port: 443
  read_header_timeout: 2000
  shutdown_timeout: 3000
  tls_cert_path: certificates/cert.pem
  tls_key_path: certificates/key.pem
  static_files: /public/static_files
    - path: /public/
      dir: . /public
upstreams: host_name: backend1.local
  - host_name: backend1.local
    target: http://backend1:8081 # backend1 is the name of the container
  - host_name: backend2.local
    target: http://backend2:8082 # backend2 is the name of the container
log_level: 0 # Debug:-4 Info:0 Warn:4 Error:8
Salin selepas log masuk

Mulakan gondola seperti berikut:

gondola -config config.yaml
Salin selepas log masuk

Kami juga mempunyai _contoh yang boleh anda cuba segera jika anda mahu.

Melaksanakan proksi terbalik dalam Go

Untuk pelaksanaan proksi terbalik dalam Go, lihat Laksanakan pengimbang beban di Golang.

Artikel ini memperkenalkan cara melaksanakan pengimbang beban, tetapi memandangkan ia berdasarkan pelaksanaan proksi terbalik, ini mungkin membantu.

Sumbangan

gondola mengalu-alukan Isu dan Permintaan Tarik.

Sudah tentu, Star juga dialu-alukan.

Kami masih kehilangan beberapa ciri dan pelaksanaan gondola, jadi kami ingin terus memperbaikinya.

  • Penutupan anggun
  • Pemeriksaan kesihatan pelayan huluan
  • Muat semula fail konfigurasi
  • Pengoptimuman kos komunikasi
  • Pengimbangan beban
  • Pelarasan pelaksanaan lain untuk skalabiliti

Sila berikan maklum balas.

Atas ialah kandungan terperinci gondola: Mengapa tidak menggunakan proksi terbalik berasaskan YAML yang ringan dan ringkas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!