NGINX는이 경우 역방향 프록시로만 작동하며 요청을 받아서 응용 프로그램 서버 (UWSGI)로 프록시합니다.
UWSGI 서버는 WSGI 인터페이스를 사용하여 Flask 응용 프로그램을로드합니다. 실제로 UWSGI가 인터넷의 요청을 직접 듣게하고 원하는 경우 NGINX를 제거 할 수 있습니다.하지만 역방향 프록시에서 주로 사용됩니다.
docs에서
:
uWSGI는 웹 서버와 통합하는 여러 가지 방법을 지원합니다. 또한 자체적으로 HTTP 요청을 제공 할 수도 있습니다.
WSGI는 단순한 인터페이스 사양으로, 서버와 응용 프로그램간에 요청과 응답을 전달하기 위해 구현해야하는 메서드를 알려줍니다.Flask 나 Django와 같은 프레임 워크를 사용할 때 이것은 프레임 워크 자체에서 처리합니다.
즉, WSGI는 기본적으로 Python 응용 프로그램 (Flask, Django 등)과 웹 서버 (UWSGI, Gunicorn 등) 간의 계약입니다. 이점은 웹 서버를 약간의 노력으로 변경할 수 있다는 것입니다. 왜냐하면 웹 서버는 실제로는 PEP-333에서 설명한 WSGI 사양을 준수한다는 것을 알고 있기 때문에 실제로는 목표 중 하나입니다.
파이썬은 현재 Zope, Quixote, Webware, SkunkWeb, PSO 및 Twisted Web과 같은 다양한 웹 응용 프로그램 프레임 워크를 자랑합니다. [1]. 일반적으로 말해서 웹 프레임 워크를 선택하면 사용할 수있는 웹 서버를 선택할 수 없으므로 새로운 파이썬 사용자에게는이 다양한 선택이 문제가 될 수 있습니다.
Werkzeug를 HTTP 서버로 사용하여 Flask 응용 프로그램을 실행할 수는 있지만 프로덕션 준비가되지 않았습니다. uWSGI 여러 문제 해결 : 를 * HTTP (이 C에서 빠르게) 분석 및 WSGI 응용 프로그램과의 인터페이스 * 실행 더 나은 동시성 여러 프로세스에서 응용 프로그램/스레드 * 역할을 WSGI 응용 프로그램의 감독자로 –