파이썬

 

1. 서버 준비

  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 프로젝트 설정

  1. 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 설정

  1. 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 설정

  1. 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. 방화벽 설정

  1. UFW 방화벽 활성화
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

 

 

 

 

6. 도메인 및 HTTPS 설정 (선택 사항)

  1. 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

 

 

 

 

 

 

 

 

 

 

about author

PHRASE

Level 60  라이트

어떤 남자라도 여자의 이상한 아름다움에는 저항할 수 없다. -탈무드

댓글 ( 0)

댓글 남기기

작성