2012-03-30 16 views
5

Chciałem uruchomić moją aplikację django używając apache i uWSGI. Więc zainstalowałem apache, który używa worker_module. Kiedy w końcu uruchomiłem swoją aplikację i przetestowałem jej wydajność za pomocą narzędzia httperf, zauważyłem, że system jest w stanie obsłużyć tylko jednego użytkownika w tym samym czasie. Dziwne jest to, że kiedy uruchomię uWSGI używając tego samego polecenia, co poniżej z nginx, mogę obsłużyć 97 równoczesnych użytkowników. Czy to możliwe, że Apache działa tak wolno?Uruchom aplikację django na apache z uWSGI

My apache konfiguracja wygląda (najważniejsze elementy - istniejące ustawienia są domyślnie):

<IfModule mpm_worker_module> 
    StartServers   2 
    MinSpareThreads  25 
    MaxSpareThreads  75 
    ThreadsPerChild  25 
    MaxClients   63 
    MaxRequestsPerChild 0 
</IfModule> 
... 
<Location /> 
    SetHandler uwsgi-handler 
    uWSGISocket 127.0.0.1:8000 
</Location> 

biegnę uwsgi używając:

uwsgi --socket :8000 --chmod-socket --module wsgi_app --pythonpath /home/user/directory/uwsgi -p 6 

Odpowiedz

1

I zaleca, aby postawić Apache za Nginx. Na przykład:

  • wiążą Apache 127.0.0.1:81
  • wiążą nginx do 0.0.0.0:80
  • make domen nginx proxy Apache powinien służyć

Nie jest to bezpośrednia odpowiedź na pytanie, ale to IMHO najlepsze rozwiązanie:

  • najlepszą wydajność
  • najlepszą ochronę dla Apache
  • pozwala na migrację witryn Apache Nginx krok po kroku (uWSGI obsługuje PHP teraz ...), ponownie dla uzyskania najlepszej wydajności i bezpieczeństwa
+0

Bardzo przydatna odpowiedź, ale chciałem tylko sprawdzić, które Serwer http jest lepszy do obsługi aplikacji django. Jestem zdezorientowany, ponieważ uważałem, że apache byłby przynajmniej w połowie dobry jako nginx. – szaman

+1

Dla Apache, mod_wsgi jest starszy, a więc bardziej dojrzały niż uwsgi dla apache. Możesz jednak poprosić o kanał uwsgi irc lub listę mailingową, aby dotrzeć do społeczności w celu uzyskania odpowiedzi na temat uwsgi. – jpic

Powiązane problemy