2012-03-30 4 views
5

Volevo eseguire la mia applicazione django usando apache e uWSGI. Così ho installato Apache che usa worker_module. Quando finalmente eseguo la mia app e ne ho testato le prestazioni usando httperf, ho notato che il sistema è in grado di servire un solo utente contemporaneamente. La cosa strana è che quando eseguo uWSGI usando lo stesso comando di seguito con nginx posso servire 97 utenti simultanei. È possibile che l'apache funzioni così lentamente?Eseguire l'applicazione django su apache con uWSGI

La mia configurazione di Apache sembra (elementi più importanti - le impostazioni esistenti sono di default):

<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> 

corro uwsgi utilizzando:

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

risposta

1

vi consiglio che si mette Apache dietro Nginx. Per esempio:

  • legano ad Apache di 127.0.0.1:81
  • legano nginx per 0.0.0.0:80
  • make domini nginx proxy Apache dovrebbe servire

Non è una risposta diretta alla tua domanda, ma questo è IMHO la soluzione migliore:

  • migliori prestazioni
  • migliore protezione per Apache
  • permette di migrare Apache siti web per Nginx passo dopo passo (uWSGI supporta PHP ora ...), ancora una volta per le migliori prestazioni e la sicurezza
+0

risposta molto utile, ma volevo solo verificare quali Il server http è migliore per servire le app di django. Sono confuso perché pensavo che l'apache sarebbe almeno metà buono di nginx. – szaman

+1

Per apache, mod_wsgi è più vecchio e quindi più maturo di uwsgi per apache. Tuttavia, è possibile chiedere sul canale uwsgi irc o sulla mailing list per raggiungere la comunità per le risposte su uwsgi. – jpic