2012-03-30 13 views
5

Quería ejecutar mi aplicación django utilizando apache y uWSGI. Así que instalé apache que usa worker_module. Cuando finalmente ejecuté mi aplicación y probé su rendimiento usando httperf, noté que el sistema solo puede atender a un usuario al mismo tiempo. Lo extraño es que cuando ejecuto uWSGI usando el mismo comando que se muestra a continuación con nginx, puedo servir a 97 usuarios simultáneos. ¿Es posible que apache funcione tan lento?Ejecute la aplicación django en apache con uWSGI

Mi configuración de Apache se parece a (elementos más importantes - los ajustes existentes son por defecto):

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

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

Respuesta

1

recomiendo que se pone detrás de Apache Nginx. Por ejemplo:

  • se unen a Apache 127.0.0.1:81
  • se unen a nginx 0.0.0.0:80
  • maquillaje dominios nginx proxy que Apache debe servir

No es una respuesta directa a su pregunta, pero eso es mi humilde opinión la mejor solución:

  • mejor rendimiento
  • mejor protección para Apache
  • permite migrar sitios Web Apache para Nginx paso a paso (uWSGI soporte PHP ahora ...), de nuevo para un mejor rendimiento y seguridad
+0

respuesta muy útil, pero sólo quería comprobar qué El servidor http es mejor para servir aplicaciones django. Estoy confundido porque pensé que apache sería al menos medio bueno como nginx. – szaman

+1

Para apache, mod_wsgi es más antiguo y por lo tanto más maduro que uwsgi para apache. Sin embargo, es posible que desee preguntar en uwsgi irc channel o mailing list para llegar a la comunidad y obtener respuestas sobre uwsgi. – jpic

Cuestiones relacionadas