with servidor python3 produccion para mod_wsgi llevar how aplicaciones and django apache nginx mod-wsgi fastcgi

python3 - servidor de aplicaciones para django



Apache o Nginx para servir aplicaciones de Django? (7)

Quiero implementar una aplicación web de Django y, por lo tanto, debo elegir un servidor web para servir los archivos de Python.

Debo mencionar que mi sitio de producción estará en un solo servidor, que albergará la base de datos y el servidor web. Como selecciones de impulso, mi objetivo es mover la base de datos a un servidor dedicado, etc.

Aquí están mis preguntas:

  1. ¿Debo usar un servidor web o dos? El contexto de esta pregunta es que mucha gente recomienda usar NginX para servir archivos de medios estáticos y Apache para servir a Python, lo que atrae las siguientes preguntas:
    1. ¿Por qué no podemos usar solo un servidor? Entiendo que Apache puede ser una bestia a veces, por lo tanto, sospecho que la gente usa NginX para servir AMBOS archivos de medios estáticos y archivos de Python.
    2. Si usa un servidor, qué es mejor, Apache o NginX. Tengo experiencia en Apache, pero solo he escuchado cosas buenas sobre NginX.
  2. ¿Cuáles son las ventajas de usar FastCGI en comparación con mod_wsgi?

Muchas gracias de antemano


¿Debo usar un servidor web o dos? El contexto de esta pregunta es que mucha gente recomienda usar NginX para servir archivos multimedia estáticos y Apache para servir a Python, lo que hace que surjan las siguientes preguntas: ¿Por qué no podemos usar un solo servidor? Entiendo que Apache puede ser una bestia a veces, por lo tanto, sospecho que la gente usa NginX para servir AMBOS archivos de medios estáticos y archivos de Python.

Si actualmente no tiene otros sitios que ya están configurados de una forma u otra, o necesita algunas características específicas que son mutuamente exclusivas entre los distintos servidores, no veo ninguna razón para usar varios servidores. Esto solo agrega complejidad y configuración innecesarias.

Si usa un servidor, qué es mejor, Apache o NginX. Tengo experiencia en Apache, pero solo he escuchado cosas buenas sobre NginX.

Como con todas las preguntas "que es mejor", esto generalmente es una cuestión de preferencia. Y para obtener una respuesta específica probablemente necesite hacer preguntas más específicas.

Si ya tienes experiencia con un servidor específico y solo quieres comenzar a correr rápidamente, entonces te sugiero que vayas con lo que ya sabes por el momento. Siempre puede cambiar a otro servidor web más tarde. Por otro lado, es una buena oportunidad para aprender sobre las alternativas.

tl; dr: iría por lo que es más fácil de configurar y administrar. Personalmente, iría por un nginx y un gunicornio, principalmente porque es fácil y hay muchos recursos disponibles si te quedas atascado.

No me preocuparía demasiado por el rendimiento hasta que realmente lo necesitaras . Todos los servidores web básicos son probados y comprobados, por lo que se debe principalmente a los requisitos de la aplicación y la carga real, que de todos modos requiere monitoreo y modelado y prueba para el ajuste fino.

¿Cuáles son las ventajas de usar FastCGI en comparación con mod_wsgi?

¿Diferencias y usos entre WSGI, CGI, FastCGI y mod_python con respecto a Python?

artículos para leer (algunos viejos, algunos nuevos);


  1. Cuanto menos, mejor.
  2. La mejor forma de implementar la aplicación Django sobre Nginx es usar uwsgi . Es puro WSGI y está integrado en la nueva versión de Nginx.



No estoy seguro de quién te recomienda que uses tanto Nginx como Apache, pero esa es una idea horrible. Cualquiera que elija, cualquiera simplemente actuará como proxy inverso, sirviendo solo recursos estáticos y entregando todo lo demás a un subproceso como uwsgi.

Prefiero Nginx porque es ligero y extremadamente rápido listo para usar. Apache puede ser igual de bueno, pero requiere construir desde el origen y saber exactamente qué configuración utilizar para que coincida con Nginx. Sin embargo, Apache tiene más funciones y es un poco más fácil trabajar con él. Depende de usted y de las necesidades de su aplicación.

Sin embargo, cualquiera que elija, solo necesita uno , no los dos.


Pregunta 1) Puede usar solo un servidor, pero para servir medios estáticos una solución como lighttpd o nginx será mucho más rápida. Me quedaría con Apache si realmente quiere usar un solo servidor, tiene toda la flexibilidad que necesita y es el servidor web más común.

Pregunta 2) Depende de tu propósito. Puede encontrar información aquí: Implementando Django (fastcgi, apache mod_wsgi, uwsgi, gunicornio)