장고:서버 옮기기
보이기
장고! 웹 프레임워크! 틀:장고
개요
종종 서버를 이사해야 할 때가 있다. 하드디스크의 손상을 고려해 새 서버로 옮긴다든가...
Django 프로젝트 이전 절차
- 기존 서비스 중단 여부 결정 (무중단 / 점검 시간 확보)
파이썬 관련 옮기기
기존 서버에서
| 과정 | 설명 | 비고 |
|---|---|---|
| Python 버전 확인 | ||
| 라이브러리 백업 | pip freeze > requirements.txt | |
새 서버에서
| 과정 | 설명 | 비고 |
|---|---|---|
| Python 가상환경 구성 | python -m venv venv
source venv/bin/activate | |
| 라이브러리 설치 | 위에서 백업한 그대로 진행한다. | pip install -r requirements.txt |
데이터 베이스 옮기기
기존 서버에서
데이터베이스 종류 확인 (SQLite / PostgreSQL / MySQL 등)
| DB 종류 | 설명 | 비고 |
|---|---|---|
| SQLite | db.sqlite3 파일을 그대로 복사 | |
| PostgreSQL | pg_dump dbname > backup.sql | |
| MySQL / MariaDB | mysqldump -u user -p dbname > backup.sql
mysql -u user -p dbname < backup.sql |
웹 서버 설정
- Nginx 또는 Apache 설정
- Reverse Proxy 구성
- Static / Media 경로 연결
서비스 등록
systemd 서비스 등록 (Gunicorn 예시)
- /etc/systemd/system/gunicorn.service 작성
sudo systemctl daemon-reload sudo systemctl enable --now gunicorn
점검
- 웹 브라우저 접속 확인
- 관리자 페이지 접속
- 주요 기능 테스트
- 로그 확인
journalctl -u gunicorn tail -f /var/log/nginx/error.log
이전 후 체크리스트
- DEBUG = False 확인
- ALLOWED_HOSTS 확인
- 보안 키 유출 여부 점검
- SSL 인증서 적용
- 백업 정책 설정
- 크론잡 / Celery / Redis 정상 동작 확인
참고 사항
- 대규모 이전 시 Docker 사용을 권장
- 작업 전 반드시 데이터베이스 백업 수행
- 테스트 서버에서 1회 이상 이전 연습 권장(DB는 망가지면 끝임;;)