
Sé que para ejecutar una aplicación web Python (una aplicación desarrollada con marcos como Flask y Django) en el servidor, es necesario implementarla usando cosas como uwsgi
, wsgi
.. gunicorn
.. etc, y configurarla para que se ejecute con el servidores web como apache2
& nginx
.
Pero sé que puedo simplemente ejecutarla python my_app.py
y la aplicación funcionará en el servidor usando puertos como: mywebsite.com:5000
. Y puedo usar un proxy en el servidor web para redirigir mywebsite.com:5000
a algo así test.example.com
como a cualquier lugar que desee.
Entonces, ¿cuál es la diferencia entre las dos formas? ¿Cuál debería usar?
Gracias.
Respuesta1
Este no es el caso con todos los marcos, pero django y flask cuando se ejecuta en su modo dev http, al que hizo referencia, tiene un solo subproceso.
Por lo tanto, el servidor solo puede manejar una única conexión a la vez. Entonces, si dos conexiones entran juntas, el servidor manejará una y hará esperar a la otra.
Un servidor wsgi con apache/nginx al frente manejará muchas conexiones a la vez.