2011-04-05 8 views
6

Estoy un poco confundido sobre cómo proceder. Estoy configurando Django para que se ejecute en un servidor Mediatemple DV. Estoy tratando de descubrir la configuración adecuada para servir contenido de imagen/video/etc.Servidores separados para servir la aplicación django y su contenido?

yo no entiendo muy bien lo que esto significa en http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/

Recomendamos utilizar un servidor Web independiente - es decir, uno que no está funcionando también Django - para servir a los medios de comunicación. Aquí hay algunas buenas opciones:

lighttpd, Nginx, TUX, Una versión reducida de Apache, Cherokee

¿Quiere decir esto que debería servir a Django en una instancia de Apache (a través de mod_wsgi) y luego sirve su contenido en otra instancia de Apache o una de las alternativas anteriores? Puedo hacer esto en el mismo servidor virtual dedicado, ¿verdad? Si es así, ¿algún consejo sobre cómo debo hacer eso?

Gracias!

Respuesta

2

Básicamente lo que está diciendo es que debes usar apache usando mod_wsgi para servir tu aplicación django, y usar un servidor web más liviano como nginx para servir tu contenido estático.

Por ejemplo.

www.yourapp.com -> Apache -> mod_wsgi -> su aplicación

static.yourapp.com Django -> nginx

Al separar sus preocupaciones se puede configurar la instancia de Apache para que el volcado camión entregando el procesamiento pesado, y su servidor nginx es ligero y rápido como un auto de carreras que sirve muchos pequeños archivos estáticos.

Si configura nginx para que maneje todo el tráfico web, puede revertir el proxy todas las solicitudes de django a apache detrás de él, e interceptar todos los archivos estáticos y servir a esos estrechos desde nginx.

consulte estos enlaces para obtener más información.

http://codespatter.com/2009/04/23/how-to-speed-up-your-django-sites/

django : Serving static files through nginx

https://serverfault.com/questions/122809/django-serving-static-files-through-nginx

https://serverfault.com/questions/199038/serving-static-files-fails-nginx

-1

Ken tiene razón en su evaluación y en la recomendación sirve de todo, detrás de un proxy Nginx. Este es el camino a seguir.

Puede tener su aplicación y servidores de medios en el mismo servidor o diferentes. Para la mayoría de las aplicaciones, no importará y está bien servir tanto a los medios como a las aplicaciones desde la misma máquina.

Si está mirando a muchos usuarios y con mucho tráfico, interrumpir el servidor de medios en su propia máquina evitará que los dos se estrellen entre sí y le permitirá un poco más de flexibilidad.

Eche un vistazo a Gunicorn si no lo ha hecho ya que es un servidor de aplicaciones rapidísimo y fácil de implementar y es el nuevo hotness.

7

Para la mayoría de las personas no hay necesidad de un servidor de medios por separado. Ha habido críticas crecientes sobre la documentación de Django que es demasiado liberal para empujar a las personas en esa dirección cuando no es necesario.

Por lo tanto, no se moleste inicialmente y si usa mod_wsgi utilice también el servidor web Apache para medios estáticos. Sin embargo, se recomienda que se asegure de ejecutar su aplicación WSGI en el modo daemon de mod_wsgi de esa manera los procesos que sirven los archivos estáticos serán delgados y no incurrirán en gastos generales de la aplicación web dinámica real.

Si excesivamente preocupados por el uso de memoria, también tienen una lectura de:

http://blog.dscpl.com.au/2009/11/save-on-memory-with-modwsgi-30.html

Ver cómo todo va y sólo cuando sí Apache parece no ser suficiente, y luego mirar a la utilización de otro servidor para manejar medios, la disposición preferida es utilizar nginx para manejar medios estáticos, con nginx también actuando como proxy a través de Apache/mod_wsgi. El uso de nginx en el frente en realidad permite que Apache/mod_wsgi tenga un mejor rendimiento, lo que no va a usar nginx en un dominio separado.

Cuestiones relacionadas