Гаразд, я думаю, я зрозумів це зараз.
Чому nginx не може безпосередньо зателефонувати до моєї програми Flask?
Оскільки nginxне підтримує специфікацію WSGI. Технічно nginx міг би реалізувати WSGIспецифікацію, якщо хотів, а просто не зробив.
У цьому випадку нам потрібен веб-сервер, який реалізує специфікацію, для чого і призначений uWSGIсервер.
Зауважте, що uWSGIце повноцінний http-сервер, який може працювати і працює добре самостійно. Я використовував його в цій якості кілька разів, і він чудово працює. Якщо вам потрібна надзвичайно висока пропускна здатність для статичного вмісту, тоді у вас є можливість прилипати nginxдо вашого uWSGIсервера. Коли ви це зробите, вони будуть спілкуватися за протоколом низького рівня, відомим як uwsgi.
"Що, що ?! Ще одна річ називається uwsgi ?!" Ви запитаєте. Так, це бентежить. Коли ви посилаєтесь, uWSGIви говорите про http-сервер. Коли ви говорите про uwsgi(усі малі літери), ви говорите про двійковий протокол, який uWSGI сервер використовує для спілкування з іншими серверами, наприклад nginx. Вони вибрали погане ім’я для цього.
Для всіх, хто цікавиться, я написав про це статтю в блозі з більш детальною інформацією, трохи історії та кількома прикладами.