Pernis versus proksi terbalik lainnya

13

Saya bekerja dengan organisasi yang telah menggunakan Varnish sebagai proxy pembalikan caching untuk semua lalu lintas web mereka. Riasan lalu lintas mereka adalah banyak situs web dinamis yang dihasilkan oleh pelanggan, dengan koleksi aset statis yang biasa tergantung di samping.

Sementara saya mencoba untuk menyukai pernis (saya pikir ini memiliki arsitektur yang cukup bagus, pada prinsipnya), saya mengalami beberapa masalah dalam mengelolanya dan memecahkan masalah saat masalah muncul, jadi saya bertanya-tanya apakah itu benar-benar pilihan yang tepat. Saya telah menggunakan squid di masa lalu sebagai proxy terbalik, tetapi tidak dalam jenis peran yang sama, jadi saya tidak memiliki dasar yang jelas untuk perbandingan.

Pertanyaan saya ditujukan pada orang-orang yang telah menggunakan pernis dalam produksi atau secara serius mengevaluasinya terhadap alternatif: apakah Anda tetap menggunakan pernis, atau apakah Anda akhirnya menggunakan proksi terbalik lain? Apa poin utama Anda untuk tetap menggunakannya atau beralih, dan jika Anda memang menggunakan sesuatu yang lain, apa yang akhirnya Anda gunakan?

womble
sumber
6
Varnish mungkin solusi terbaik Anda. Saran saya adalah untuk bergabung dengan milis dan terlibat dengan produk, karena Anda mungkin akan membutuhkan bantuan mereka jika Anda mengalami masalah. Melihat situs mereka sepertinya mereka menawarkan pilihan dukungan dibayar, yang Anda mungkin tertarik
Dave Cheney

Jawaban:

9

Yah, saya menjalankan Varnish di server web saya, terutama karena alasan kinerja, meskipun fitur load balancingnya juga praktis.

Kasus penggunaan saya adalah caching di depan situs web berbasis- Django , dan itu sangat bagus untuk kinerja pemuatan halaman. Saya dapat melayani sebagian besar halaman langsung dari cache dan menangani banyak pengunjung dengan sedikit kesulitan.

Alasan saya memilih Varnish terutama kinerja / skalabilitas. Poin utama:

  • Pernis mari kernel mengelola memori virtual, di mana Squid mencoba untuk menyimpan disk dan cache memori yang terpisah, dapat menyebabkan kernel dan Squid bertengkar sedikit tentang apa yang harus dipindahkan ke disk.
  • Varnish menggunakan VCL, itu bahasa konfigurasi khusus domain itu sendiri, yang mengkompilasi ke kode mesin melalui C. Itu adalah manfaat kinerja yang sangat nyata jika Anda memiliki lebih dari sedikit logika dalam konfigurasi Anda - pengupasan header bersyarat dll.

Dalam pengalaman saya, Varnish melakukan sedikit lebih baik daripada Squid dalam banyak kasus, dan jauh lebih baik pada lonjakan lalu lintas. Di sisi lain, mengonfigurasi Varnish dengan benar akan memerlukan trawl mailing-list, karena tidak banyak dokumentasi siap pakai untuk Anda yang menggunakan case case spesifik yang mengalir di internet seperti halnya ada untuk Squid - terutama karena Varnish menjadi proyek yang cukup muda dibandingkan.

mikl
sumber
0

Saya menghabiskan waktu yang lama untuk mencoba mendapatkan Varnish 1.x stable di rawa standar linux / hardware dell, itu akan selalu menggantung dengan cara yang aneh dan pengawasnya akan me-restart itu. Yang baik-baik saja, kecuali untuk cache dimenangkan yang tidak bertahan di tempat lain ...

Karena itu, apakah Anda benar-benar menggunakan alat yang tepat untuk pekerjaan itu? Jika Anda ingin proksi terbalik yang akan men- cache hasil permintaan (dengan asumsi Anda memberikan header cache yang berkualitas baik) maka pernis adalah pilihan yang baik. Semoga itu menjadi lebih stabil di versi 2.0

Namun, jika Anda menjalankan situs * onRails dan Anda ingin memuat penyeimbangan lebih dari beberapa server backend maka HAProxy atau Nginx mungkin adalah cara yang harus dilakukan. Jika Anda tidak memerlukan logika url yang rumit (arahan ulang, regex cocok untuk menulis ulang url yang lebih lama, dll) maka HAProxy akan sesuai dengan tagihan. Jika Anda memang membutuhkan sesuatu yang lebih cakap, maka cobalah nginx.

Dave Cheney
sumber