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/
'Programming > Python' 카테고리의 다른 글
[Python] 키워드인수와 딕셔너리 언패킹 (**) (0) | 2022.12.10 |
---|---|
[Python] 인수를 여러개 받기 (위치/키워드/언패킹) (0) | 2022.12.10 |
[Django] 도메인 연결을 위한 Nginx 설정 (0) | 2022.11.30 |
우분투 Python 가상환경 만들기 (0) | 2022.08.30 |
우분투에 VSCODE 파이썬 개발환경 설정하기 (0) | 2021.12.19 |