pertanyaan semacam ini mungkin telah diajukan di sini tetapi saya tidak dapat menemukan yang benar-benar cocok dengan pertanyaan saya. Mendengar bahwa kinerja nginx cukup mengesankan, tetapi Apache memiliki lebih banyak dokumen, komunitas (baca: pakar) untuk mendapatkan bantuan
Sekarang apa yang ingin saya ketahui, bagaimana kedua server web membandingkan dalam hal kinerja, kemudahan konfigurasi, tingkat penyesuaian, dll. SEBAGAI server REVERSE PROXY dalam lingkungan vps ??
Saya masih mempertimbangkan antara keduanya untuk aplikasi web ruby (bukan ROR) yang disajikan dengan thin (salah satu server web ruby).
Jawaban spesifik akan sangat dihargai. Jawaban umum tidak menyentuh bagian ruby tidak apa-apa. Saya masih noob dalam administrasi server web.
Jawaban:
Saya ingin memberikan komentar ini karena saya setuju dengan poin terpenting dari jawaban webdestroyas, tetapi terlalu lama.
Anda berada di lingkungan VPS, ini berarti kemungkinan besar RAM Anda hampir habis. Untuk alasan ini saja Anda akan menginginkan Nginx karena jejak memorinya lebih kecil dari Apache.
Juga saya tidak setuju dengan beberapa argumen yang disebutkan.
Kemudahan Konfigurasi:
Nginx tidak lebih sulit daripada Apache. Ini berbeda. Jika Anda terbiasa dengan Apache maka perubahan akan selalu lebih sulit, ini tidak berarti bahwa gaya konfigurasi itu sendiri lebih sulit. Saya bermigrasi sepenuhnya dari Apache ke Nginx lebih dari setahun yang lalu dan hari ini saya akan berjuang untuk mengkonfigurasi server Apache sedangkan saya menemukan Nginx sangat mudah untuk dikonfigurasi.
Untuk Ruby:
Nginx memiliki Penumpang, namun, saya biasanya melihatnya digambarkan sebagai metode yang lebih rendah untuk terhubung ke Ruby. Saya bukan programmer Ruby jadi saya tidak bisa memverifikasi ini tetapi saya sering melihat Unicorn dan Thin disebutkan sebagai alternatif yang lebih baik.
Kesimpulannya:
Nginx dibuat menjadi proxy terbalik. Awalnya yang dilakukannya hanyalah menayangkan file statis dan membalikkan proxy ke server backend melalui HTTP / 1.0. Sejak itu fastcgi, load balancing dan berbagai fitur lainnya telah ditambahkan, tetapi tujuan desain awalnya adalah untuk menyajikan file statis dan membalikkan proxy. Dan ini sangat baik.
Apache, sebaliknya adalah server web tujuan umum. Saya tidak ragu bahwa itu dapat membalikkan proxy dengan sangat baik, tetapi itu tidak dirancang untuk memiliki jejak memori minimal dan sebagai akibatnya membutuhkan lebih banyak sumber daya daripada Nginx, yang berarti argumen lingkungan VPS awal saya ikut bermain.
sumber
Kinerja:
NGinX. Server ini dikenal sebagai salah satu server web dengan kinerja terbaik, dan digunakan oleh banyak perusahaan yang berbeda (Notable, MediaTemple)
Kemudahan Konfigurasi:
Apache. Konfigurasi Apache sangat sederhana, dan sangat kuat. Nginx sangat kuat, tetapi bisa sangat sulit untuk dipahami, karena sepertinya lebih seperti bahasa pemrograman daripada file konfigurasi.
Tingkat Kustomisasi:
Apache. Apache memiliki banyak mod dan plugin lain yang ditulis untuk itu. Walaupun Nginx masih memiliki plugin yang dibuat untuknya, saya pikir Apache memiliki lebih banyak daripada Nginx.
Untuk Ruby:
Saya tahu Nginx dapat digunakan sebagai penyeimbang beban yang kuat dengan Mongrel / webrick. Namun, Apache memiliki Phusion / Penumpang yang membuat integrasi lebih bagus.
Reverse Proxy Winner:
NGinX
sumber
Nginx berbasis acara, sedangkan apache berbasis proses. Di bawah beban tinggi, ini membuat semua perbedaan di dunia ... Apache harus memotong atau memulai utas baru untuk setiap koneksi, sementara nginx tidak. Perbedaan ini muncul terutama dalam penggunaan memori, tetapi juga dalam waktu respons pengguna dan metrik kinerja lainnya. Nginx dapat menangani puluhan ribu koneksi keepalive HTTP simultan pada perangkat keras modern. Apache akan menggunakan tumpukan 1-2 MB untuk setiap koneksi, jadi lakukan penghitungan yang Anda lihat bahwa Anda hanya dapat menangani beberapa ratus atau mungkin seribu koneksi secara bersamaan tanpa mulai bertukar.
Kami menggunakan nginx di depan Apache dan IIS di lingkungan kami sebagai proxy load-balancing dan caching, dan tidak bisa lebih bahagia. Kami menggunakan dua kotak nginx ish kecil sebagai ganti sepasang perangkat F5 sewaan yang sangat mahal dan situs kami jauh lebih cepat dalam hal merasakan dan mengukur waktu respons.
sumber
Saya berada dalam dilema yang sama dengan Anda sekitar dua minggu yang lalu.
Untuk memberi Anda jawaban yang benar-benar singkat: Dari penelitian saya, nginx benar-benar cepat dan ramah sumber daya, tetapi hanya menyetujui untuk membalikkan file statis proxy. Sisanya terkait dengan solusi yang harus Anda konfigurasi atau skrip jalan Anda.
AFAIK nginx tidak memiliki file htaccess sehingga Anda harus mencari jalan keluar jika tergantung pada fitur itu.
AFAIK semuanya perlu bekerja dan saya telah melihat tutorial.
Saya akan menggunakan nginx dengan pengaturan pengujian dan profil. Saya memiliki aplikasi LAMP yang khas.
Saya telah membaca bahwa ada orang yang membalikkan proxy dan menyajikan file statis dari nginx dan meneruskan semua yang lain seperti PHP ke instance Apache yang sedang berjalan. Mereka mengklaim pengorbanan yang baik. Saya tidak memiliki data kinerja tentang itu, tetapi Anda mungkin ingin tahu.
sumber
Saya punya masalah serius dengan mod_proxy Apache pada berbagai platform di berbagai lingkungan yang berbeda selama beberapa tahun terakhir. Dari waktu ke waktu, itu hanya akan berhenti bekerja dan satu-satunya obat tampaknya adalah me-restart server Apache.
Secara pribadi, saya tidak akan bertanya "nginx vs Apache", tetapi "nginx vs lighttpd" - dan itu panggilan yang jauh lebih sulit!
sumber