우분투에서 nginx uwsgi를 사용하여 플라스크를 배포할 때의 함정과 관련하여 이유를 아는 사람이 있습니까?
nginx와 uwsgi를 사용하여 Ubuntu에서 플라스크를 배포하는 경우 uwsgi 서버의 기본 구성으로 인해 문제가 발생할 수 있습니다. uwsgi는 기본적으로 마스터 프로세스와 하나 이상의 작업자 프로세스를 생성하며, nginx가 요청을 프록시할 때 닫힌 작업자 프로세스에 요청을 보내 시간 초과 오류가 발생할 수 있습니다. killall -s INT uwsgi 명령을 사용하여 uwsgi 프로세스를 종료하면 이 문제를 해결할 수 있습니다. 이 명령은 SIGINT 신호를 uwsgi 기본 프로세스에 보내 모든 작업자 프로세스를 종료하도록 알리기 때문입니다. 그런 다음 uwsgi를 다시 시작하면 모두 정상적으로 작동하는 새로운 작업자 프로세스 세트가 다시 생성됩니다.
이러한 상황을 방지하려면 하나의 작업자 프로세스만 생성하도록 uwsgi 구성을 수정할 수 있습니다. 이렇게 하면 nginx가 요청을 프록시할 때 시간 초과 오류 없이 작업자 프로세스에만 요청을 보냅니다. uwsgi 구성 파일에 process=1을 추가하면 이를 달성할 수 있습니다. 예:
=============
[uwsgi]
socket = /tmp/uwsgi.sock< / p>
chdir = /path/to/your/app
wsgi-file = app.py
호출 가능 = app
processes = 1
==============
이 정보가 문제 해결에 도움이 되기를 바랍니다.