티스토리 뷰

DEV/Django

[Django] Gunicorn, 배포를 위한 도구

뚜비두빱 2022. 3. 27. 22:29

Gunicorn 

개발을 하며 django를 실행시킬때 우리는 runserver를 통해 django를 실행시킨다.

대부분의 웹 서버는 어떻게 파이썬 프로그램을 호출해야 하는지 모르므로 파이썬 프로그램을 호출하지 못하기 때문에 wsgi서버는 웹에서 서버(nginx)와 통신을 할때, 정적파일이 아닌 동적페이지 요청을 할때 중간에서 파이썬 프로그램을 호출 해 주는 역할을 한다.

python manager.py runserver 로 동작하는 내장서버는 웹 서버와 WSGI 서버의 기능들을 모두 포함하고 있다. 내장 서버는 기능들이 단순화되어 있고 대량 요청이나 동시 요청에 대한 기능들이 부족하기 때문에 운영환경에서 사용하기에는 적절하지 않다.

 

동작 과정 

https://moondol-ai.tistory.com/467
https://ossian.tistory.com/110

위와같이 gunicornNginx와 같이 쓰인다. 클라이언트가 www.django.com  주소를 입력하면 DNS서버에서 IP를 얻어와 서버로 접속을 한다. 서버에서 제일 처음 Nginx를 만난다. Nginx는 client가 static(정적)인 자료를 요청한다면 Nginx에서 바로 Client에게 정적인 자료를 Return한다. 만약 동적인 요청이 들어왔을경우 Gunicorn에게 요청을 보내서 HTTP요청을 Python코드로 변환해 Django서버에게 요청을하고, Django는 이에 맞는 응답을 한다. 

꼭 써야할까?

Nginx, Gunicorn을 안쓰고 python manager.py runserver로도 똑같이 사용할 수 있으나, 그렇게 하기엔 NginxGunicorn의 좋은기능들을 사용하지 못하기때문에 배포를 할때는 둘을 활용해서 배포하는것이 좋다.

 

Nginx의 주요 기능으로는 로드밸런싱, 캐싱 기능이 있고

Gunicorn은 같은 장고 프로세스를 여러개 돌릴 수 있는 worker processes기능과 요청 횟수를 제한하는 max_requests등 다양한 기능이 있다.  gunicorn의 기능은 화해 기술블로그에서 잘 설명해주고 있다.

 

 

인공지능이 궁금하다고 ? 들어와봐

Nginx와 Gunicorn 둘 중 하나만 써도 될까?

[Django] Django Tutorial - Django & Gunicorn 연동하기

'DEV > Django' 카테고리의 다른 글

[Django] SQL Lite Query 보는 방법  (0) 2022.05.01
[Django] CORS 오류  (0) 2022.04.23
[Django DRF] Serializer를 통한 데이터 검증  (0) 2022.04.11
[Django] ManyToManyField  (0) 2022.03.21
[Django] model.Objects.get 예외처리  (0) 2022.01.24
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함