Kerugian menggunakan nginx sebagai server web utama?

12

Saya telah melihat jutaan situs web menggunakan nginx sebagai server web proksi yang bekerja bersama dengan Apache. Tetapi saya telah melihat sangat sedikit server yang menjalankan nginx hanya sebagai server web default mereka. Apa kelemahan utama dari konfigurasi tersebut?

Saya dapat melihat beberapa:

  • Ketidakmampuan untuk menggunakan file konfigurasi per-direktori seperti .htaccess sehingga setiap perubahan konfigurasi harus dilakukan ke file konfigurasi server utama dan memerlukan server memuat ulang. Tetapi pecl htscanner dapat mengompensasi mereka untuk pengaturan php
  • Tidak tersedianya mod_php untuk nginx, yang dapat dikompensasi dengan php-fpm misalnya.

Apa yang lainnya? Mengapa orang tidak langsung meninggalkan Apache dan beralih ke nginx atau solusi ringan lainnya? Mungkin, ada beberapa alasan khusus?

EDIT: pertanyaan ini terutama tentang bekerja dengan tumpukan LAMP.

Vladislav Rastrusny
sumber
1
Mindshare, inersia, investasi. Sama seperti biasanya.
Ignacio Vazquez-Abrams
Investasi apa yang diperlukan untuk men-setup nginx di server baru? Ini adalah perangkat lunak opensource gratis.
Vladislav Rastrusny
3
Investasi waktu yang diperlukan untuk meneliti, menyebarkan, menguji, dll.
ThatGraemeGuy
Jika kita berbicara tentang kuantitas, IMHO alasan terbesarnya adalah banyaknya host bersama menggunakan Apache. Menyiapkan nginx sebagai layanan bersama (mis. Seperti di cPanel, Plesk, dll) belum semudah melakukan hal yang sama dengan Apache, terutama untuk pengguna akhir. Dan saya tahu banyak dedicated server yang menjalankan satu situs, namun menggunakan cPanel / Plesk / etc hanya karena kemudahan, keakraban dan biaya setup yang rendah.
Halil Özgür

Jawaban:

9

Dari pengalaman #nginx saya hampir selalu karena keakraban dengan file .htaccess Apache dan tidak ingin kehilangan itu atau tergantung pada itu. Misalnya, orang yang menjalankan hosting server bersama yang hanya ingin membongkar file statis dan menyimpan apache bagi penggunanya.

Dan jujur ​​saya tidak bisa memikirkan alasan lain untuk melakukan proxy ke Apache selain menjaga. Htaccess untuk pengguna akhir.

Sunting: Sebenarnya mod_php plus phpsuexec untuk host bersama mungkin menjadi alasan lain untuk tetap menggunakan Apache.

Martin Fjordvald
sumber
Dari pengalaman saya, cukup sulit untuk mendapatkan kinerja yang baik dari kucing jantan melalui nginx, karena ajp-pekerja apache2 terutama lebih cepat di bawah tekanan tinggi. Saya tahu bahwa nginx memiliki implementasi ajp13 eksperimental, tetapi tidak stabil dan kurang didokumentasikan.
pauska
1
Itu sangat mungkin. Nginx berfungsi paling baik sebagai proxy reverse fastcgi atau HTTP 1.0. Saya tahu ada modul pihak ke-3 untuk berbicara dengan scgi, wsgi dll tapi saya tidak bisa mengatakan seberapa stabil mereka, atau bahkan seberapa cepat mereka.
Martin Fjordvald
BTW, mod_php tidak bekerja dengan suexec. Suexec adalah untuk aplikasi cgi.
Vladislav Rastrusny
Nah begitulah, tidak ada alasan nyata. Sudah menjadi pengguna nginx terlalu lama untuk mengingat Apache lebih lama. : D
Martin Fjordvald
6

Jika Anda memiliki banyak orang yang dapat membuat Apache berfungsi dengan baik, mengapa repot mempelajari kembali aplikasi dan konfigurasi yang sama sekali baru, memigrasikan aturan mod_rewrite, mengulang konfigurasi mod_perl / php / etc, menguji ulang, menyebarkan kembali?

Kedua tumpukan perangkat lunak mungkin gratis tetapi, "melatih ulang, mengembangkan kembali, menguji ulang" tidak, dan sudah saatnya Anda dapat menambahkan fitur yang dipedulikan pengguna Anda 1 , daripada bermain-main demi bermain-main.

1 Saya jelas tidak berbicara tentang proyek pribadi, di sana.

Rodger
sumber
2

Saya suka Nginx, tetapi dua hal menghentikan saya untuk menggunakannya untuk situs web saya.

  • Sulit untuk mengatur PHP-FPM . Saya belum berhasil melakukannya dengan versi PHP terbaru.

  • Nginx belum mendukung untuk HTML5 Websockets, yang saya interrested.

Jonas
sumber
1
Bisakah Anda menyebutkan kesulitan yang Anda alami dengan nginx dan php-fpm? Tentang HTML5 WebSockets, sepertinya Apache belum memilikinya: issues.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny
Saya ingin tahu masalah php-fpm juga. Jika Anda dapat mengkompilasi PHP dari sumber tanpa itu maka sangat mudah untuk melakukannya dengan PHP juga.
Martin Fjordvald
1
Cabang 5.3 sudah ada di dalamnya, jadi cukup ./configure --enable-fpm dan Anda selesai.
Vladislav Rastrusny