Django 서버를 항시 가동시키기 위한 설정 방법은 주로 운영 환경 기준으로 다릅니다. 일반적으로 다음과 같은 조합을 사용합니다:
✅ Django + Gunicorn + Nginx + Systemd (Linux)
아래는 Ubuntu 서버 기준으로, Django를 항상 실행되게 설정하는 가장 흔하고 안정적인 방법입니다.
✅ 1. Gunicorn 설치 및 실행 설정 (WSGI 서버)
Gunicorn은 Django와 잘 어울리는 WSGI 서버입니다.
설치:
bash
복사편집
pip install gunicorn
테스트 실행:
bash
복사편집
gunicorn –bind 0.0.0.0:8000 myproject.wsgi:application
✅ 2. systemd 유닛 파일 작성 (자동 실행 + 재시작)
서비스 등록으로 재부팅 후 자동 실행 및 모니터링할 수 있습니다.
➤ 유닛 파일 생성:
bash
복사편집
sudo nano /etc/systemd/system/django.service
➤ 예시 설정 (수정해서 사용):
ini
복사편집
[Unit]
Description=Django Gunicorn Service
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/myproject
ExecStart=/home/ubuntu/myproject/venv/bin/gunicorn –workers 3 –bind 0.0.0.0:8000 myproject.wsgi:application
Restart=always
Environment=DJANGO_SETTINGS_MODULE=myproject.settings
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
주의: 경로(/home/ubuntu/…, venv, myproject)는 본인 서버에 맞게 수정!
✅ 3. 서비스 시작 및 자동 실행 설정
bash
복사편집
sudo systemctl daemon-reload
sudo systemctl start django.service
sudo systemctl enable django.service # 부팅 시 자동 시작
➤ 상태 확인
bash
복사편집
sudo systemctl status django.service
✅ 4. Nginx 리버스 프록시 설정 (선택)
Django는 직접 포트 80 사용을 권장하지 않기 때문에, Nginx로 프록시를 구성합니다.
➤ 설정 파일 작성:
bash
복사편집
sudo nano /etc/nginx/sites-available/myproject
nginx
복사편집
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
활성화:
bash
복사편집
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
✅ 5. static 파일 서비스 및 collectstatic
bash
복사편집
python manage.py collectstatic
Nginx로 static 파일도 서비스하려면 location /static/ 블록도 추가해야 합니다.
✅ 6. 로그 확인
bash
복사편집
journalctl -u django.service -f
✅ 7. 요약 체크리스트
| 항목 | 설정 여부 |
| Django 프로젝트 완성 | ✅ |
| Gunicorn 설치 | ✅ |
| systemd 유닛 파일 작성 | ✅ |
| systemctl enable로 자동 실행 설정 | ✅ |
| Nginx 설정 (선택) | ⬜ |
| collectstatic 수행 | ✅ |
| 정적 파일 경로 Nginx에 연결 | ⬜ |
✅ 추가로 필요할 수 있는 정보:
- 운영체제 (예: Ubuntu 20.04)
- Python 가상환경 여부
- Gunicorn 외에 사용하고 싶은 서버 (예: Uvicorn, Daphne 등)
- HTTPS 적용 (Let’s Encrypt)
