En temiz ve Django için en hızlı sunucu kurulumu

oy
42

Django tarafından desteklenmektedir mediumsized siteyi dağıtmak üzereyim. Ben özel bir Ubuntu Server var.

Ben kullanmayı Serversoftware hangi üzerinde gerçekten karıştı. Yani ben kendime düşündüm: stackoverflow sorma neden.

Ne ben aramak oluyor:

  • Kurulumu kolay
  • Hızlı ve kaynaklar üzerinde kolay
  • MediaFiles hizmet edebilir
  • aynı sunucuda birden djangosites hizmet verebilecek
  • Daha doğrusu kaynakları berbat PHP veya başka bir şey yüklemek olmaz ve kendisi için ben ihtiyacım yok.

Ben Apache, nginx ve lighty üzerinde mod_wsgi ve mod_python duymuş. Hangi Bunların avantajları ve dezavantajları vardır ve ben birisini kaçırmış?

@Barry : Apache benim için şişirilmiş etmektir gibi nasılsa ben hissediyorum. Ne alternatifler hakkında?

@BrianLy : Tamam ben mod_wsgi biraz daha kontrol edeceğiz. I lighty ile statik dosyalara hizmet Ama eğer neden ben Apache gerekiyor? Ayrıca lighty ile django uygulaması kendisini hizmet başarmış. Neyse yani kötü mü? Bu kadar aptal :-) Beeing için üzgünüm

GÜNCELLEME : lighty ve nginx hakkında ne - bu mükemmel bir seçim kullanır-durumlardır ne zaman?

Oluştur 25/08/2008 saat 12:28
kaynak kullanıcı
Diğer dillerde...                            


13 cevaplar

oy
5

Bir Django projesini dağıtmak için resmi olarak önerilen yolu apache ile mod_python kullanmaktır. Bu anlatılan belgeler. Bu ana yanlısı onu dağıtmak için iyi, belgelenmiş en desteklenir ve en yaygın yolu olmasıdır. Con muhtemelen en hızlı olmadığıdır.

Cevap 25/08/2008 saat 12:49
kaynak kullanıcı

oy
6

@Barry dediği gibi, dokümantasyon kullanır mod_python . Bir sunucu olarak Ubuntu kullanılır, ancak Solaris üzerinde mod_wsgi ile iyi bir deneyim olmadı. Sen belgelerine bulabilirsiniz mod_wsgi ve Django üzerinde mod_wsgi sitesinde.

ihtiyaçlarınız hızlı bir incelemesi:

  • Kolay kurulum için ben derlemek ve kurmak için apache 2.2 oldukça kolay buldum.
  • Kaynaklar üzerindeki Hızlı ve kolay Ben bu kullanım ve trafik bağlıdır söyleyebilirim. * Sen Apache kullanarak sunucuya tüm dosyaları istiyor ve kullanamaz Lighttpd'ye sunucusu statik dosyalara (lighty).
  • Medya dosyalarını hizmet Can Ben, resimleri demek flash dosyaları üstlenecek? Apache yapabilirsiniz.
  • Aynı sunucu üzerinde birden çok siteleri Apache barındırılması Sanal sunucuda.
  • Aksine diğer uzantıları yüklemez Apache config istemedikleri bir şeyi açýklama.
Cevap 25/08/2008 saat 13:00
kaynak kullanıcı

oy
1

Eğer LightHTTPD kullanıyorsanız, ayrıca Django sunumu için FastCGI kullanabilirsiniz. Hız mod_wsgi kıyasla nasıl emin değilim, ama bellek doğru hizmet veriyorsa, size Mod_python ile almak değildir mod_wsgi ile alacağı faydaları bir çift olsun. Farklı uygulamalar hafızasını tutmak için gerçekten yararlı olduğunu her uygulamayı kendi sürecini verebileceği olmanın ana bir (çok çekirdekli bilgisayarlar yararlanarak yanı sıra ayrılmış.

Düzenleme: Sadece belleğin doğru tekrar hizmet veriyorsa, nginix eşzamanlılık işlemek için "greenlets" kullanır nginix hakkında Güncellemenize açısından ekleyin. Bu biraz daha dikkatli olmak için emin bir uygulama tüm sunucunun zaman yiyip etmediğini olması gerekebilir anlamına gelir.

Cevap 25/08/2008 saat 14:06
kaynak kullanıcı

oy
26

Biraz daha derinlemesine cevaplar arıyordu, ben derinlemesine konuyu kendim araştırma kararı aldı. Hiçbir şey yanlış anladın varsa bana bildirin.

Bazı genel bir öneri ortamla işlem için ayrı web sunucusu kullanmaktır. Ayrı olarak, Django Çalışmayan bir web sunucusu anlamına gelir. Bu sunucu örneğin şunlar olabilir:

  • Lighttpd (Lighty)
  • Nginx (EngineX)
  • Ya da başka hafif sunucu

Ardından, Django için, farklı yollar aşağı gidebilir. Ya:

  • Aracılığıyla Django Serve Apache ve:

    • mod_python

      Bu istikrarlı ve önerilen / iyi belgelenmiş bir yoldur. Eksileri: çok fazla bellek kullanır.

    • mod_wsgi

      Anladığım kadarıyla, mod_wsgi daha yeni bir alternatiftir. Kaynaklar üzerinde hızlı ve daha kolay gibi görünüyor.

    • mod_fastcgi

      FastCGI kullanırken başka bir işlem için Django porsiyon yetkilendirirken. Mod_python her isteği bir piton yorumlayıcı içerir beri çok fazla bellek kullanır. Bu sorunu aşmak için bir yoldur. Ayrıca bazı güvenlik kaygıları vardır.

      Ne yapmak ayrı bir süreç içinde Django FastCGI sunucusu başlatmak olduğunu ve daha sonra yapılandırır apache aracılığıyla gerektiğinde bu süreci aramaya yeniden yazar.

Veya şunları yapabilirsiniz:

  • Django Serve Apache kullanmadan ama FastCGI doğal destekleyen başka sunucu ile:

    (Dokümantasyon herhangi Apache belirli ihtiyaçları yoksa bunu yapabilirsin bahseder. Ben neden bellekten tasarruf etmek olmalıdır sanırım.)

    • lighttpd

    Bu Youtube çalışır sunucusudur. Ancak ben memoryleaks üzerinde raporlarını gördüm, hızlı ve kullanımı kolay görünüyor.

    • nginx

    Bu sunucunun, daha hızlı lighttpd daha olduğunu iddia kriterler gördüm. Çoğunlukla olsa Rusça belgeli.

nedeniyle sunucu çatallı modda çalışıyor olmalıdır Python sınırlamalara başka şey, dişli değil.

Yani bu benim şimdiki araştırma, ama daha görüşler ve deneyimler istiyorum.

Cevap 27/08/2008 saat 07:41
kaynak kullanıcı

oy
1

Bizim Django dağıtımlar tümü için nginx ve FastCGI kullanın. biz genellikle Slicehost de üzerinde dağıtmak ve Apache bizim belleğinin tüm bağış istemiyoruz çünkü bu çoğunlukla. Bu bizim "kullanım örneğinde" olacağını tahmin ediyorum.

Rusça çoğunlukla olmanın belgeler hakkında açıklamalar gelince - Üzerinde bilgilerin çoğunu buldum İngilizce wiki çok yararlı ve doğru olmasını. Bu site kendi nginx yapılandırma tweak hangi çok Django için örnek yapılandırmaları vardır.

Cevap 04/09/2008 saat 12:53
kaynak kullanıcı

oy
2

En iyi yapılandırma öyle düşünüyorum bilinmemektedir. Ama burada:

  1. isteklerini (app dinamik, doğrudan statik içerik) sunum için nginx kullanın.
  2. dinamik içerik sunumu için piton web sunucusu kullanın.

piton tabanlı web sunucusu için iki en hızlı çözümleri:

Sen (hala geliştirilme aşamasında) django için mevcut en iyi yapılandırmayı bulmak için google içine bakmak gerekir.

Cevap 20/09/2008 saat 17:06
kaynak kullanıcı

oy
2

Kullandığım nginx (0.6.32 Sid alınan birlikte) mod_wsgi . Ben herhangi çalıştı çünkü hiç alternatiflerinden daha iyi olsun diyemem olsa o çok iyi çalışıyor. Nginx etti memcached (yerine ben önbellek elle piton-Memcache'ı kullanarak ve değişiklik yapıldığında bunu geçersiz doldurmak, ben aslında bunu kullanmayın) belki Django önbelleğe alma katman birlikte çalışır ve böylece yerleşik destek, böylece önbellek tamamen baypas Django vurur (benim geliştirme makine saniyede yaklaşık 3000 isteğine yanıt verebilir).

Bir uyarı: nginx' mod_wsgison derece adlandırılmış yerleri (onları geçmek çalışır sevmediği SCRIPT_NAME), çok açık ' error_page 404 = @django' sayısız belirsiz hatalara neden olur. Bunu düzeltmeye kaynağını mod_wsgi yama vardı.

Cevap 24/09/2008 saat 10:58
kaynak kullanıcı

oy
2

Ben de tüm seçenekleri anlamak için mücadele ediyorum. Gelen bu blog post ben Mod_python kıyasla mod_wsgi bazı faydaları açıkladı bulundu.

Küçük bir VPS üzerinde Çoklu düşük trafik siteleri RAM harcamını birincil endişe yapmak ve Mod_python orada kötü seçenek gibi görünüyor. lighttpd ve FastCGI kullanarak, 58MiB sanal ve 6.5MiB ikamet aşağı basit bir Django sitenin asgari bellek kullanımını başardı ettik (yeniden başlatmayı ve olmayan tek bir RAM ağır isteğini yattıktan sonra).

Debian Etch birkaç oranında Python süreçlerinin asgari bir bellek alanına arttı ben 2,5 Python 2.4 o yükseltme fark ettik. Öte yandan, 2.5 en iyi bellek yönetimi uzun süren süreçler üzerinde daha büyük ters etki olabilir.

Cevap 06/10/2008 saat 06:56
kaynak kullanıcı

oy
9

Ben kullanıyorum Cherokee .

Göre kendi kriterler (onlarla tuz tahıl), bu Lighttpd ve nginx hem daha yük daha iyi yönetir ... Ama bunu kullanmak nedeni bu değil.

Yazarsanız çünkü kullanmak cherokee-admin, size (bir kerelik şifre ile) giriş ve güzel pişmiş webmin aracılığıyla bütün sunucuyu yapılandırabilirsiniz yeni bir sunucu başlatır. Bu bir katil özellik. Zaten beni kurtardı çok zaman. Ve bu benim sunucu kaynaklarının çok tasarruf ediyor!

django gelince, ben bir dişli SCGI süreci olarak koşuyorum. İyi çalışıyor. Cherokee çok çalışmasını sağlamak olabilir. Yine, çok güzel bir özellik.

Geçerli Ubuntu repo sürümü çok eski yüzden kullandığınız öneriyorum onların PPA . İyi şanslar.

Cevap 09/12/2008 saat 16:08
kaynak kullanıcı

oy
2

Basit tutun: Django Apache ve mod_wsgi (veya Mod_python) önerir . Medya sunum dosyalarını hizmetin çok büyük bir parçasıysa, Amazon S3 veya Rackspace CloudFiles düşünün.

Cevap 15/06/2009 saat 01:09
kaynak kullanıcı

oy
1

Eric Florenzano - FastCGI Django dağıtma: Bu nedenle this.For yapmak için birçok yol, yaklaşım vardır, dikkatle DjangoAdvent.com üzerinde dağıtım sürecine ilişkin makale okumak tavsiye http://djangoadvent.com/1.2/deploying -django-site--fastcgi kullanarak / çok oku: Mike Malone - Ölçekleme Django Stochastictechnologies Blog: mükemmel Django Kur Mikkel Höegh Blog:% 35 Tepki zamanlı iyileştirme-anahtarlama-uwsgi-nginx

Saygılarımızla

Cevap 28/10/2010 saat 03:05
kaynak kullanıcı

oy
2

En iyi Bence / hızlı yığın vernik-nginx-uwsgi-Django olduğunu. Ve başarıyla kullanıyorum.

Cevap 09/05/2011 saat 20:01
kaynak kullanıcı

oy
1

Ben Cherokee kullanmak için bir uyarı var. Django Cherokee yerine onu öldürme ve yenisini başlayan, ESKİ sürecini korur Sizin değişiklik yaparken.

Apache üzerinde i şiddetle bu makaleyi önerilir.

http://www.djangofoo.com/17/django-mod_wsgi-deploy-exampl

kolay kurulum için kolay öldürmek veya değişiklikleri yaptıktan sonra sıfırlamak için.

Sadece terminali yazın

sudo /etc/init.d/apache2 restart

ve değişikliklerin anında görülür.

Cevap 12/02/2013 saat 21:55
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more