Sie werden nicht parallel verwendet. NGINX ist ein reverse proxy. Es steht an erster Stelle. Es akzeptiert eingehende Verbindungen und entscheidet, wohin sie als nächstes gehen sollen. Es bedient (normalerweise) auch statische Medien wie CSS, JS und Bilder. Es kann auch andere Dinge wie Verschlüsselung über SSL, Zwischenspeicherung usw. tun.
Gunicorn ist die nächste Schicht und ist ein application server. NGINX sieht, dass die eingehende Verbindung für www.domain.com
ist und über Konfigurationsdateien weiß, dass diese Verbindung an Gunicorn übergeben werden soll. Gunicorn ist ein WSGI-Server, der im Grunde ein:
einfache und universelle Schnittstelle zwischen Web-Server und Web-Anwendungen oder Frameworks
Gunicorn der Aufgabe, die Django-Instanz (en) (ähnlich zu verwalten und führen zu Verwendung django-admin runserver
während der Entwicklung)
Der Kontrast zu diesem Setup ist Apache mit dem mod_wsgi
Modul zu verwenden. In diesem Fall ist der Anwendungsserver tatsächlich ein Teil von Apache und wird als Modul ausgeführt.
Siehe [diese Frage] (http://stackoverflow.com/questions/13004484/deploying-django-with-gunicorn-and-nginx/13004973#13004973), die in ein bisschen mehr Details geht als Timmy's Antwort. –
@BurhanKhalid danke, das half – noahandthewhale