digitalocean - gunicorn nginx django
¿Cuál es el propósito de NGINX y Gunicorn corriendo en paralelo? (1)
Muchas implementaciones de aplicaciones Django en EC2 de Amazon usan servidores HTTP NGINX y Gunicorn.
Me preguntaba qué es lo que realmente hacen y por qué ambos se usan en paralelo. ¿Cuál es el propósito de ejecutarlos a ambos en paralelo?
No se usan en paralelo. NGINX es un proxy inverso . Es el primero en la fila. Acepta conexiones entrantes y decide a dónde deben ir después. También (normalmente) sirve medios estáticos como CSS, JS e imágenes. También puede hacer otras cosas como el cifrado a través de SSL, el almacenamiento en caché, etc.
Gunicorn es la siguiente capa y es un servidor de aplicaciones . NGINX ve que la conexión entrante es para www.domain.com
y sabe (a través de archivos de configuración) que debe pasar esa conexión a Gunicorn. Gunicorn es un servidor WSGI que es básicamente un:
interfaz simple y universal entre servidores web y aplicaciones web o marcos
El trabajo de Gunicorn es administrar y ejecutar las instancias de Django (similar al uso de django-admin runserver
durante el desarrollo)
El contraste con esta configuración es usar Apache con el módulo mod_wsgi
. En esta situación, el servidor de aplicaciones es en realidad una parte de Apache, ejecutándose como un módulo.