Saya memiliki sedikit pengalaman dalam desain arsitektur infrastruktur situs web. Saya tahu ini mungkin situasi khusus. Situs web seharusnya:
1) Butuh dukungan HTTPS untuk beberapa halaman (mis. Halaman login) sementara yang lain hanya halaman HTTP.
2) Memerlukan beberapa server web sehingga diperlukan penyeimbangan muatan.
3) Perlu caching dan kompresi HTTP untuk meningkatkan kinerja.
4) Beberapa permintaan (mis. Pengunggahan gambar) harus dialihkan ke server backend khusus. Jadi, diperlukan penyeimbangan berbasis URL.
Saya tahu bahwa NginX dan HAProxy keduanya adalah Proxy Reverse open-source yang bagus dan / atau Load Balancer. Karena HAProxy tidak mendukung SSL, sementara Nginx load balancing tidak sebagus HAProxy. Saya akan mengambil keduanya.
Jadi, haruskah saya meletakkan Nginx (sebagai proxy terbalik) di depan HAProxy (sebagai penyeimbang beban), atau sebaliknya?
Terima kasih
sumber
haproxy sejak v. 1.5, dirilis pada 2014 , memang mendukung SSL seperti jimat, termasuk SNI.
Karena itu saya akan meletakkan haproxy di depan nginx.
sumber
Anda hanya harus menggunakan nginx, ia melakukan semua yang Anda butuhkan sebagai server web frontend. Jika Anda memerlukan front-end load-balancing, gunakan penyeimbang beban L3 seperti Linux Virtual Server , karena tidak menghalangi seperti yang dilakukan HAproxy. Gunakan HAproxy jika diminta untuk melakukan load balancing di belakang layar, seperti menyeimbangkan permintaan ke kumpulan pekerja backend.
sumber