Saya sedang berpikir tentang arsitektur untuk server Web baru. Apakah memiliki Varnish sebagai cache di depan Nginx sebagai proxy terbalik dan menyajikan file statis di depan apache untuk semua pekerjaan berat adalah ide yang bagus?
Saya akan menjalankan aplikasi php dan ruby pada rails.
Apakah akan ada terlalu banyak permintaan lewat permintaan php untuk di-apache melalui dua proses lainnya?
Terima kasih banyak!
sumber
Varnish tidak (belum) mendukung kompresi gzip, jadi mungkin ide untuk menukar itu dengan nginx di depan untuk mengompresi apa yang dikirim pernis kembali. Karena varnish dan nginx tidak berjuang untuk sumber daya yang sama (nginx menggunakan CPU untuk kompresi gzip, sementara pernis menggunakan memori) mereka harus berjalan dengan lancar di mesin yang sama.Varnish sekarang mendukung kompresi gzip , jadi kecuali Anda memerlukan penghentian SSL (seperti yang disarankan dalam komentar), saya akan menyarankan menempatkan pernis langsung di kontak dengan Internet.
Untuk http:
Untuk https:
Jika Anda ingin apache di sana juga (untuk dukungan mod_foobar di mana-mana), saya akan meletakkannya di antara pernis dan aplikasi
Pembaruan: Diperbarui untuk menyertakan dukungan gzip di pernis 3.0. Menambahkan ssl / esi seperti yang disarankan dalam komentar
sumber
Jumlah overhead seharusnya tidak signifikan. Saya berasumsi bagian dari alasan Anda ingin memiliki dua tingkatan ini adalah untuk skalabilitas; dalam hal ini kemungkinan besar Anda akan melihat, relatif terhadap apache, bahwa pernis dan nginx tidak bekerja sangat keras.
Jika Anda ketiga tier pada satu mesin, seharusnya ada sedikit dampak kinerja sebelum Anda mencapai kapasitas server itu sendiri.
Sebagai alternatif, mengapa tidak pernis + nginx dengan penumpang? Saya pernah menggunakan pengaturan ini di masa lalu dan nginx menggunakan penumpang relatif ringan, dan berjalan cukup baik. Mungkin patut dipikirkan jika Anda belum menikah dengan apache yang menjalankan stack rails Anda.
sumber
Saya adalah admin sistem untuk platform e-niaga pemula. Kami menggunakan varnish + nginx di depan tumpukan PHP / apache kami dan ini berhasil dengan sangat baik.
Kami memiliki aplikasi penggunaan memori tinggi dan aplikasi itu menggunakan sekitar 15-20gigs RAM per webnode dan setelah kami menempatkan pernis di depan sekarang sekitar 8gig RAM per node. Mereka tidak pernah berduri.
Jadi saya sangat merekomendasikannya.
sumber
Saya menjalankan Drupal, dengan modul boost di server Apache + PHP + MySQL, tetapi di depannya saya menggunakan Nginx dengan fitur gzip-static aktif, dan menggunakan hasil boost untuk melayani pengguna.
Dan di atas semua itu saya menggunakan pernis, semua pada PC yang sama, saya memiliki hasil yang baik.
Saya juga menggunakan Nginx untuk mengubah header yang Drupal tidak lakukan dengan sangat baik untuk cache.
sumber
Itu bukan ide yang baik kecuali jika Anda membutuhkan sesuatu seperti ESI. Nginx memiliki sistem caching sendiri yang berkinerja lebih baik .
sumber
Apache dapat digunakan untuk mengakhiri SSL (mendekripsi), periksa http://noosfero.org/Development/Varnish#SSL
sumber