uWSGI의 요점은 무엇입니까?
WSGI 사양을 보고 있는데 uWSGI와 같은 서버가 사진에 어떻게 들어가는지 알아보려고 합니다.WSGI 사양의 요점은 플라스크를 사용하여 작성하는 것과 같은 웹 애플리케이션에서 nginx와 같은 웹 서버를 분리하는 것입니다.제가 이해할 수 없는 것은 uWSGI가 무엇을 위한 것인지 입니다.왜 nginx는 내 플라스크 애플리케이션에 직접 전화를 걸 수 없습니까?플라스크는 WSGI를 직접 말할 수 없습니까?왜 uWSGI가 그들 사이에 끼어 들어야 합니까?
WSGI 사양에는 서버와 웹 앱 두 가지 면이 있습니다.uWSGI는 어느 쪽에 있습니까?
알았어요, 이제 알 것 같아요.
왜 nginx는 내 플라스크 애플리케이션에 직접 전화를 걸 수 없습니까?
.nginx
WSGI 사양을 지원하지 않습니다.으로 nginx를 할 수 .WSGI
그들이 원했다면, 그들은 단지 원하지 않았을 뿐입니다.
때문에 하는 웹 합니다.uWSGI
서버용입니다.
:uWSGI
는 자체적으로 잘 작동하고 잘 작동하는 완전한 http 서버입니다.이 용량으로 여러 번 사용해봤는데 효과가 좋네요.우,다를 할 수 .nginx
t uWSGI
서버.당신이 그렇게 할 때, 그들은 다음과 같이 알려진 낮은 수준의 프로토콜을 통해 통신할 것입니다.uwsgi
.
"뭐라고요?! 또 다른 것은 uwsgi?!"당신이 물어봐요.네, 헷갈리네요.참고하실때uWSGI
당신은 http 서버를 말하는 것입니다.때 할때.uwsgi
(모두 소문자) 당신은 2진 프로토콜에 대해 말하는 것입니다.uWSGI
서버는 다른 서버와 대화하는데 사용합니다.nginx
이름이 안 좋은 걸로 뽑혔대요.
관심 있는 분들을 위해 좀 더 자세한 내용과 역사, 그리고 몇 가지 사례를 블로그에 글로 올렸습니다.
이 경우 NGINX는 역방향 프록시로만 작동하며 정적 파일을 렌더링하지 않고 요청을 수신하여 애플리케이션 서버(UWSGI)로 프록시 처리합니다.
UWSGI 서버는 WSGI 인터페이스를 사용하여 Flask 응용프로그램을 로드할 책임이 있습니다.대부분 역방향 프록시 뒤에서 사용되지만 UWSGI가 인터넷의 요청을 직접 듣고 원한다면 NGINX를 제거할 수 있습니다.
문서에서:
uWSGI는 웹 서버와 통합하는 몇 가지 방법을 지원합니다.또한 HTTP 요청을 자체적으로 처리할 수 있습니다.
WSGI는 단순히 인터페이스 사양일 뿐이며, 간단히 말하면 서버와 애플리케이션 간에 요청과 응답을 전달하기 위해 어떤 방법을 구현해야 하는지 알려줍니다.Flask나 Django와 같은 프레임워크를 사용할 때는 프레임워크 자체에서 이를 처리합니다.
즉, WSGI는 기본적으로 파이썬 애플리케이션(Flask, Django 등)과 웹 서버(UWSGI, Gunicorn 등) 간의 계약입니다.웹 서버가 PEP-333에 명시된 WSGI 사양을 준수한다는 것을 잘 알고 있기 때문에 적은 노력으로도 웹 서버를 변경할 수 있다는 장점이 있습니다.
Python은 현재 Zope, Kixote, Webware, SnunkWeb, PSO, Twisted Web 등 다양한 웹 애플리케이션 프레임워크를 자랑하고 있습니다.일반적으로 말하면, 웹 프레임워크를 선택하면 사용 가능한 웹 서버를 선택하는 데 제한을 받게 되고, 그 반대의 경우에도 마찬가지이기 때문에 이러한 광범위한 선택 사항은 새로운 Python 사용자에게 문제가 될 수 있습니다.
기존의 웹 서버는 파이썬 애플리케이션을 이해하지 못하거나 실행할 방법이 없습니다.그래서 WSGI 서버가 들어오는 겁니다.반면 Nginx는 역방향 프록시를 지원하여 Python WSGI 서버에 대한 요청을 처리하고 응답을 전달합니다.
이 링크가 도움이 될 수 있습니다: https://www.fullstackpython.com/wsgi-servers.html
우리가 놓치고 있는 중요한 측면이 있습니다.Flask와 Django는 웹 프레임워크이며 우리는 그것들로 웹 어플리케이션을 만듭니다. uWSGI 또는 Gunicorn은 프레임워크 파일을 처리합니다. 그것을 Django 앱과 Nginx 사이에 있는 소프트웨어 어플리케이션으로 간주합니다. uWSGI와 Nginx는 WSGI를 사용하여 통신하지만 Django와 uWSGI 사이에는 통신 인터페이스가 없습니다. 이 비디오를 확인하십시오. https://www.youtube.com/watch?v=WqrCnVAkLIo
간단히 말하면, Nginx 웹 서버로 CGI나 PHP 애플리케이션을 실행하고 있다는 비유를 생각해 보십시오.웹 서버의 네이티브 형태에서는 이러한 형식을 렌더링하지 않으므로 php-fpm과 같은 각 핸들러를 사용하여 파일을 실행합니다.
언급URL : https://stackoverflow.com/questions/38601440/what-is-the-point-of-uwsgi
'programing' 카테고리의 다른 글
어디서 쓰였을까요?php come from, TinyMCE hack (0) | 2023.09.20 |
---|---|
gcc 디버그 기호(-g 플래그) vs linker's -rdynamic 옵션 (0) | 2023.09.20 |
How big is the performance difference between Oracle and PostgreSQL? (0) | 2023.09.20 |
도커 - 0.0.0.0:4000에 대한 바인딩 실패: 포트가 이미 할당되었습니다. (0) | 2023.09.20 |
Build in Docker에서 환경 변수를 설정하는 방법 (0) | 2023.09.20 |