Mana yang terbaik untuk Django? Lighttpd atau Nginx? Atau mungkin sesuatu yang lain? [Tutup]

18

Manakah dari Lighttpd dan Nginx, berdasarkan pengalaman Anda, lebih cocok untuk Django? Saya telah menggunakan keduanya dan hampir tidak dapat melihat perbedaan sama sekali, mereka hanya berfungsi dengan baik ... Apakah ada kasus penggunaan ketika salah satu dari mereka bertindak jauh lebih baik daripada yang lain? Saat menjawab, harap perhatikan kesederhanaan konfigurasi dan efisiensi.

Setup saya yang biasa adalah memiliki proses Django FCGI terpisah (seperti di ./manage.py runfcgi daemonize=false port=8098 host=127.0.0.1) diluncurkan melalui daemontools atau init.dscript dan lighty / nginx bertindak sebagai proxy terbalik.

Oh, dan jika Anda merasa server http lain jauh lebih baik untuk Django daripada Lighty dan Nginx, jangan ragu untuk membagikan pendapat Anda.

Ryszard Szopa
sumber
Jika layanan fastcgi mati, supervisi daemontools akan memulai kembali dalam lima detik, sehingga layanan kembali. Tetapi Anda masih memiliki sedikit jeda waktu henti di sana. Dalam penempatan saya, saya menemukan fastcgi menjadi rapuh berhenti secara tak terduga di bawah tekanan ringan. Setelah beberapa kali downtime dan beberapa panggilan telepon canggung dari klien, saya beralih Nginx untuk membalikkan proxy ke Apache mod_wsgi dan semuanya hanya bersenandung sejak itu.

Jawaban:

14

Baik Nginx dan Lighttpd adalah pilihan yang lebih baik daripada apache ketika menggunakan mereka sebagai proksi terbalik untuk Django, Rails, dll. Keduanya mendukung proksi FastCGI dan Http. Keduanya menawarkan model berbasis pilihan tunggal () (atau lebih baik) untuk penggunaan sumber daya yang efisien.

Namun suara saya masuk ke Nginx, ia memiliki basis pengguna yang sangat aktif (saat ini merupakan kesayangan set Ruby on Rails), dan sedang dalam pengembangan aktif. Lighttpd bisa disangka telah mati, 2+ tahun dan kami masih menunggu beta 1,5.

Dave Cheney
sumber
7

mod_wsgi direkomendasikan cara untuk memasukkan aplikasi Django ke dalam produksi. Mod_wsgi Apache jauh lebih baik daripada nginx. Anda tidak dapat menemukan paket resmi (dalam distribusi Linux saat ini) untuk mod_wsgi nginx dan Anda perlu mengompilasinya sendiri. Saya suka nginx tetapi jika Anda ingin bermain aman, mainlah dengan Apache mod_wsgi.

miHost
sumber
2
Nginx mod_wsgi bukanlah sesuatu yang ingin Anda gunakan. Nginx adalah yang terbaik untuk menyajikan konten statis dan membalikkan proxy ke Apache mod_wsgi untuk menghasilkan dinamis. Anda tidak ingin menggunakan server web asinkron untuk menghasilkan halaman dinamis dan menyajikan konten statis. Apache mod_wsgi pada itu sendiri tidak masuk akal juga. Anda tidak ingin binatang itu sibuk menyemprotkan file-file statis, sementara itu seharusnya melakukan pengangkatan berat. Baca lebih lanjut di sini b-list.org/weblog/2008/jun/23/media
5

mod-wsgi adalah cara terbaik untuk menjalankan aplikasi django dalam produksi, lebih sedikit daripada fastcgi dan tidak ada masalah dengan waktu mulai dll.

Mod-wsgi sebenarnya untuk apache, tetapi ada mod-wsgi lain untuk nginx. Apache yang brilian, saya tidak bisa mengomentari yang nginx.

Secara pribadi, saya akan menjauh dari lighttpd. Itu tidak memiliki stabilitas nginx, saya belum melihat kasus lighttpd yang tidak memiliki kebocoran memori.

Pada dasarnya, pilihan pertama saya adalah apache 2.2, pilihan kedua saya adalah nginx.

Jangan percaya hype tentang waktu respons dan skalabilitas. Sebenarnya, itu tidak masalah. (Google menggunakan Apache).

Kaya
sumber
Google menggunakan GWS ( en.wikipedia.org/wiki/Google_Web_Server ) bukan Apache. Yahoo menggunakan Apache, tetapi itu adalah garpu kuno 1,3.
Dave Cheney
YouTube menggunakan atau setidaknya menggunakan lighttpd, jadi saya tidak berpikir itu sangat buruk. Lihat highscalability.com/youtube-architecture .
Cristian Ciupitu
Ya, tetapi sementara GWS adalah proyek rahasia, diketahui bahwa itu didasarkan pada Apache.
YT tidak mengatakan bahwa mereka memiliki cabang penerangan mereka sendiri. Benarkah lighty memiliki masalah kebocoran memori yang terkenal. Saya percaya mereka mungkin sudah memperbaikinya sekarang, tetapi perwakilan masih ada.
Abhishek Dujari
2

Juga, pertimbangkan untuk menggunakan Google App Engine. Anda dapat meng-host proyek Django Anda di sana secara gratis dan tidak perlu khawatir tentang memelihara infrastruktur server.

Stephen Hassard
sumber
8
Django pada GAE memiliki batasan yang signifikan, seperti tidak mendukung fitur basis data / ORM Django. Jika mendukung apa yang Anda butuhkan, bagus - tetapi periksa dengan cermat!
Saya percaya MySQL sekarang didukung oleh GAE jadi saya menganggap ORM juga. Meski benar, aku tidak punya pengalaman mencobanya. Django tanpa ORM seperti porno tanpa torrents.
Abhishek Dujari