WEB_Django 서버 설정 파일

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)
위로 스크롤