Apakah Varnish dengan nginx lebih baik daripada hanya menggunakan nginx? [Tutup]


22

Saya melihat banyak pembicaraan tentang penggunaan nginx dengan Varnish dan saya tidak mengerti mengapa. Tidak cukup nginx?

Nginx memiliki SSI, memiliki cache proxy terbalik, ringan, memiliki SSL, dapat bekerja dengan cgi, fpm, dll.

Pernis memiliki hal yang sama, tetapi tidak ada ssl, dan tidak ada dukungan cgi.


"Lebih baik" sangat subjektif. Itu tergantung pada kasus penggunaan Anda ...
voretaq7

7
Terkadang pertanyaan sederhana melakukan pekerjaan lebih baik daripada yang kompleks. Saya sangat prihatin dengan tindakan seperti itu dari orang-orang yang menutup pertanyaan ini dengan asumsi itu tidak baik untuk "format T&J asli". Saya mencari tentang hal ini dan saya sangat tertarik untuk melihat hasil dari debat ini.
Roger

pernis memiliki konfigurasi vcl yang kuat, membersihkan, membalikkan cache proksi, ESI nginx dapat bekerja dengan FCGI, membalikkan cache proksi, ssi, tidak membersihkan (mungkin ada modul) kinerja bijaksana mereka hampir sama untuk file statis, caching ... jika Anda memiliki pertanyaan yang dapat saya bantu
Bogdan Cosmin

Jawaban:


14

Saya telah menemukan pernis ~ 5% lebih cepat untuk file statis kecil daripada nginx - pernis di depan apache, atau pernis di depan server aplikasi web akan menjadi keuntungan besar; tetapi di depan nginx, manfaatnya sangat kecil (terutama dengan biaya overhead dan kompleksitas tambahan yang diperhitungkan)


Bisakah Anda memberikan beberapa hasil tes untuk mendukung ini? Bagaimana jika saya sudah menggunakan nginx + opcache. Apakah ada manfaat menggunakan pernis?
Serius

23

Pertama, untuk memperjelas: Nginx adalah server web, dengan semua fitur dan kompleksitas yang diperlukan. Ini juga memiliki kemampuan caching, tetapi itu bukan tujuan desain utamanya.

Pernis bukan server web. Itu tidak bisa mengisi peran itu (toh bukan tanpa VCL yang benar-benar jahat). Perannya adalah untuk menyimpan konten yang disediakan oleh server lain. Jika diperlukan, dapat mengubah permintaan atau respons.

Jika nginx dapat menangani lalu lintas Anda, maka itu sudah cukup. Jika nginx tidak dapat mengikuti, maka salah satu cara untuk meningkatkan kapasitasnya adalah dengan menempatkan cache di depannya dan memiliki cache menangani sebanyak mungkin permintaan.

Sebagai contoh, kami menggunakan Apache untuk menjalankan sejumlah situs web PHP yang relatif kompleks dari sekelompok server web. Ketika kami mulai mengalami masalah kapasitas, kami menempatkan sepasang server Varnish di depan cluster Apache. Host Varnish sekarang menangani 85% dari semua permintaan yang masuk tanpa mengganggu backend Apache.


Jadi, Varnish melakukan cache konten dinamis yang dihasilkan oleh PHP? Atau hanya hal-hal lain?
Alix Axel

Pernis cache apa pun yang Anda kirim ke cache. Itu bisa men-cache hanya output PHP, hanya file statis, keduanya, atau tidak sama sekali. Ini alat yang sangat kuat.
Insyte

Saya bertanya tentang contoh spesifik Anda. Ini membuat saya bingung bagaimana mungkin untuk men-cache konten dinamis tanpa mengacaukan aplikasi dinamis (sesi PHP sebagai permulaan). Caching konten statis sepertinya sedikit berlebihan bagi saya.
Alix Axel

3
Itu tergantung pada konten dinamis. Katakan, misalnya, bahwa halaman tersebut adalah posting blog dengan komentar. Mungkin sangat mahal untuk membuat utas komentar tetapi dapat diterima untuk menyimpannya selama 5 menit. Di sisi lain, caching konten dinamis yang dikembalikan oleh aplikasi webmail jelas akan bermasalah. Anda bahkan dapat membuat case campuran: Cache output penuh dari aplikasi ecommerce, tetapi katakan pernis untuk menelepon kembali ke backend untuk mengisi indikator keranjang belanja.
Insyte
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.