1. 서버 준비
Ubuntu 22.04 서버에 로그인
ssh username@your_server_ip
2.시스템 업데이트
sudo apt update && sudo apt upgrade -y
3.필수 패키지 설치
sudo apt install python3-pip python3-venv python3-dev build-essential libpq-dev nginx -y
2. Django 프로젝트 설정
Cookiecutter로 프로젝트 생성
pip install cookiecutter cookiecutter https://github.com/cookiecutter/cookiecutter-django
- 프로젝트 생성 중, 필요한 옵션을 입력하여 Django 프로젝트를 생성합니다.
프로젝트 디렉토리로 이동
cd your_project_name
3.가상환경 설정
python3 -m venv venv source venv/bin/activate
4.필수 Python 패키지 설치
pip install -r requirements/production.txt
5.Django 프로젝트 설정 파일 업데이트
production.py 에서 다음 설정을 확인 및 수정합니다
DEBUG = False ALLOWED_HOSTS = ['your_server_ip', 'your_domain'] STATIC_ROOT = BASE_DIR / 'staticfiles'
6.데이터베이스 마이그레이션
python manage.py migrate
7.정적 파일 수집
python manage.py collectstatic
3. Gunicorn 설정
Gunicorn 설치
pip install gunicorn
2.Gunicorn 테스트 실행
gunicorn --bind 0.0.0.0:8000 your_project_name.wsgi
3.Systemd 서비스 파일 생성
sudo nano /etc/systemd/system/your_project_name.service
아래 내용을 추가:
[Unit] Description=Gunicorn instance to serve your_project_name After=network.target [Service] User=your_user Group=www-data WorkingDirectory=/path/to/your_project_name ExecStart=/path/to/your_project_name/venv/bin/gunicorn --workers 3 --bind unix:/path/to/your_project_name/your_project_name.sock your_project_name.wsgi:application [Install] WantedBy=multi-user.target
4.서비스 활성화 및 시작
sudo systemctl start your_project_name sudo systemctl enable your_project_name
4. Nginx 설정
Nginx 서버 블록 설정 파일 생성
sudo nano /etc/nginx/sites-available/your_project_name
아래 내용을 추가:
server { listen 80; server_name your_domain_or_ip; location = /favicon.ico { access_log off; log_not_found off; } location /static/ { root /path/to/your_project_name; } location / { include proxy_params; proxy_pass http://unix:/path/to/your_project_name/your_project_name.sock; } }
2.심볼릭 링크 생성
sudo ln -s /etc/nginx/sites-available/your_project_name /etc/nginx/sites-enabled
3.Nginx 설정 테스트
sudo nginx -t
4.Nginx 재시작
sudo systemctl restart nginx
5. 방화벽 설정
- UFW 방화벽 활성화
sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' sudo ufw enable
6. 도메인 및 HTTPS 설정 (선택 사항)
Let's Encrypt SSL 인증서 설치
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain
SSL 인증서 갱신 테스트
sudo certbot renew --dry-run
7. 테스트 및 배포 완료
- 브라우저에서 http://your_domain 또는 http://your_server_ip로 접속해 Django 앱이 잘 작동하는지 확인합니다.
- 문제가 있다면 Nginx 로그 및 Gunicorn 로그를 확인합니다
sudo journalctl -u your_project_name sudo tail -f /var/log/nginx/error.log
헤로쿠를 이용한 배포
https://docs.google.com/document/d/1F2kK1sDOIBkgIVop9lictX7LNwgKaLUoFfj24JNZPz8/edit?pli=1&tab=t.0
댓글 ( 0)
댓글 남기기