본문 바로가기
Programming/Python

[Django] Gunicon Django에 적용하기

by 느리게 걷는 즐거움 2022. 12. 2.
728x90
반응형

Django를 deploy하면서 정리가 필요한 내용들을 적어봅니다.

WSGI

WSGI(Web Server Gateway Interface)는 Python 웹 어플리케이션을 실행하기 위한 WSGI 인터페이스의 웹서버 측을 구현합니다. WSGI는 PEP3333표준에 정의된 대로 WSGI 웹 어플리케이션에서 callable 객체를 호출합니다.

WSGI를 사용하면 웹서버의 요청을 효율적으로 처리할 수 있습니다. Django에서는 Ngnix를 웹서버로 gunicon 을 주로 사용하는 것 같습니다. 서로간의 관계는 잘 정리해주신 블로그 글로 대체합니다. (https://leffept.tistory.com/345)

잘 정리된 글은 위의 블로그로 대체하고 linode에 서버를 deploy 진행했던 내용을 정리하는 목적으로 정리해봅니다.

1. Gunicon 설치

: 설치 시 가상환경을 사용하는 경우라면 꼭 python 가상환경을 실행한 상태인지 확인 후 설치하자. ^^;

pip3 install gunicorn

 

2. Gunicorn 설정

Gunicorn을 실행하기 위한 daemon을 생성한다. 서비스 실행을 위해 아래의 파일을 
/etc/systemd/system/gunicorn.service 이름으로 생성한다.

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=[자신의 user ID]
Group=www-data
WorkingDirectory=[자신의 Django가 설치된 절대경로]
ExecStart=[자신의 Django가 설치된 절대경로]/.venv/bin/gunicorn DjangoApp.wsgi:application

[Install]
WantedBy=multi-user.target

 

3. Gunicon 서비스 실행 및 실행상태 확인

systemctl daemon-reload
systemctl start daemon

 

서비스가 실행 중인지 확인을 위해 아래의 명령을 실행한다.

systemctl status gunicorn

정상적으로 서비스가 실행된 상태인 경우 위와 같이 "active (running)" 상태임을 확인할 수 있다. 필요에 따라 코드 변경 사항이 생기는 경우 gunicorn 데몬일 재 실행한다.

systemctl restart gunicorn

 

https://www.fullstackpython.com/wsgi-servers.html   
https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/

 

728x90
반응형