gunicorn으로 서버를 실행하니 다음과 같은 에러가 나왔습니다.
gunicorn app:app --bind 127.0.0.1:8020
[ERROR] Error handling request /docs
Traceback (most recent call last):
File "/home/user/anaconda3/envs/forge/lib/python3.10/site-packages/gunicorn/workers/sync.py", line 135, in handle
self.handle_request(listener, req, client, addr)
File "/home/user/anaconda3/envs/forge/lib/python3.10/site-packages/gunicorn/workers/sync.py", line 178, in handle_request
respiter = self.wsgi(environ, resp.start_response)
TypeError: FastAPI.__call__() missing 1 required positional argument: 'send'
위처럼 에러가나는건 uvicorn worker를 지정해주지 않아 동기 모드인 wsgi 인터페이스가 적용되어서 나타난 오류 입니다.
비동기 모드인 asgi로 실행되도록 비동기 uvicorn worker를 지정해주는 명령어를 사용하면 됩니다.
gunicorn -k uvicorn.workers.UvicornWorker --access-logfile ./gunicorn-access.log app:app --bind 127.0.0.1:8020 --workers 10 --daemon