Okay, ich glaube ich verstehe das jetzt.
Warum kann nginx meine Flask-Anwendung nicht direkt aufrufen?
Weil nginx
die WSGI-Spezifikation nicht unterstützt wird. Technisch gesehen könnte nginx die WSGI
Spezifikation implementieren, wenn sie wollten, sie haben es einfach nicht.
In diesem Fall benötigen wir einen Webserver, der die Spezifikation implementiert, wofür der uWSGI
Server bestimmt ist.
Beachten Sie, dass dies uWSGI
ein vollwertiger http-Server ist, der selbstständig gut funktionieren kann und funktioniert. Ich habe es in dieser Funktion mehrmals verwendet und es funktioniert großartig. Wenn Sie einen extrem hohen Durchsatz für statische Inhalte benötigen, haben Sie die Möglichkeit, nginx
vor Ihrem uWSGI
Server zu bleiben . Wenn Sie dies tun, kommunizieren sie über ein Protokoll auf niedriger Ebene, das als bekannt ist uwsgi
.
"Was zum was?! Eine andere Sache namens uwsgi?!" du fragst. Ja, es ist verwirrend. Wenn Sie referenzieren uWSGI
, sprechen Sie von einem http-Server. Wenn Sie über uwsgi
(alle Kleinbuchstaben) sprechen, sprechen Sie über ein Binärprotokoll, das der uWSGI
Server verwendet, um mit anderen Servern wie zu sprechen nginx
. Sie haben einen schlechten Namen gewählt.
Für alle, die interessiert sind, habe ich einen Blog-Artikel darüber geschrieben, der mehr Einzelheiten, ein bisschen Geschichte und einige Beispiele enthält.