Trong trường hợp này, NGINX chỉ hoạt động như một proxy ngược và hiển thị các tệp tĩnh không phải tệp động , nó nhận các yêu cầu và ủy quyền chúng tới máy chủ ứng dụng, đó sẽ là UWSGI.
Máy chủ UWSGI chịu trách nhiệm tải ứng dụng Flask của bạn bằng giao diện WSGI. Bạn thực sự có thể làm cho UWSGI lắng nghe trực tiếp các yêu cầu từ internet và xóa NGINX nếu bạn muốn, mặc dù nó chủ yếu được sử dụng sau proxy ngược.
Từ các tài liệu :
uWSGI hỗ trợ một số phương pháp tích hợp với máy chủ web. Nó cũng có khả năng tự phục vụ các yêu cầu HTTP.
WSGI chỉ là một đặc tả giao diện, nói một cách đơn giản, nó cho bạn biết những phương pháp nào nên được triển khai để chuyển các yêu cầu và phản hồi giữa máy chủ và ứng dụng. Khi sử dụng các khung công tác như Flask hoặc Django, điều này được xử lý bởi chính khung công tác đó.
Nói cách khác, WSGI về cơ bản là một hợp đồng giữa các ứng dụng python (Flask, Django, v.v.) và máy chủ web (UWSGI, Gunicorn, v.v.). Lợi ích là bạn có thể thay đổi máy chủ web mà không tốn nhiều công sức vì bạn biết chúng tuân thủ đặc điểm kỹ thuật WSGI, đây thực sự là một trong những mục tiêu, như đã nêu trong PEP-333 .
Python hiện tự hào có một loạt các mô hình ứng dụng web, chẳng hạn như Zope, Quixote, Mua phần mềm, SkunkWeb, PSO, và Twisted Web - để đặt tên chỉ là một vài 1 . Sự lựa chọn đa dạng này có thể là một vấn đề đối với người dùng Python mới, bởi vì nói chung, sự lựa chọn khung web của họ sẽ hạn chế sự lựa chọn của họ về các máy chủ web có thể sử dụng và ngược lại.