Dobra, myślę, że teraz rozumiem.
Dlaczego nginx nie może bezpośrednio wywołać mojej aplikacji Flask?
Ponieważ nginxnie obsługuje specyfikacji WSGI. Technicznie rzecz biorąc, nginx mógłby zaimplementować WSGIspecyfikację, gdyby chciał, po prostu tego nie zrobił.
W takim przypadku potrzebujemy serwera WWW, który implementuje specyfikację, do której służy uWSGIserwer.
Zauważ, że uWSGIjest to pełnoprawny serwer http, który może i działa dobrze samodzielnie. Używałem go w tej roli kilka razy i działa świetnie. Jeśli potrzebujesz bardzo dużej przepustowości dla zawartości statycznej, możesz trzymać się nginxprzed uWSGIserwerem. Gdy to zrobisz, będą komunikować się za pośrednictwem protokołu niskiego poziomu, znanego jako uwsgi.
„Co do czego ?! Kolejna rzecz zwana uwsgi ?!” ty pytasz. Tak, to zagmatwane. Kiedy się odwołujesz, uWSGImasz na myśli serwer http. Kiedy mówisz o uwsgi(wszystkie małe litery), mówisz o protokole binarnym , którego uWSGI serwer używa do komunikacji z innymi serwerami, takimi jak nginx. Wybrali złe imię na tym.
Dla każdego, kto jest zainteresowany, napisałem o tym artykuł na blogu , zawierający więcej szczegółów, trochę historii i kilka przykładów.