Django

장고 서버 배포 간단 요약

zhelddustmq 2024. 10. 4. 16:35

1. AWS에 새 인스턴스(서버 하나 빌리는것) 생성(key.pem 중요)

2. mac은 터미널에서, window는 putty나 MobaXTerm(추천)으로 인스턴스에 접속

3. 접속 했으면, 인스턴스에 원격 코드 가져오기 (github 쓰셨으면 git pull)

4. sudo apt-get install build-essential libpq-dev -y =>  pip install -r requirements.txt 를 통해 필요한 라이브러리 설치

5. config파일 생성해 키값들 복사 붙여넣기 ( cp config.py 내 레파지토리/내 프로젝트 명  # config.py 파일을 원하는 위치로 복사 )

6. python3 manage.py migrate하기(makemigrations 명령은 배포 인스턴스에서 x)

7. python3 manage.py createsuperuser

8. 아마존에서 80포트 열어준 후, settings.py에 ALLOWED_HOSTS추가 및 아래 내용도 추가(정적 파일 업로드)

STATIC_URL = "static/"
STATIC_ROOT = BASE_DIR / "static"

9. python3 manage.py collectstatic

10. cd /etc/nginx/sites-available => sudo vi django 후 아래 내용 추가

server {
        listen 80;
        server_name *.compute.amazonaws.com;
        charset utf-8;
		    client_max_body_size 128M;

        location /static {
                alias /home/ubuntu/내 레파지토리/static;
        }

        location / {
                include proxy_params;
                proxy_pass http://unix:/tmp/gunicorn.sock;
        }
}

11. cd /etc/nginx/sites-enabled => sudo rm default  # 기본 설정 삭제 => sudo ln -s /etc/nginx/sites-available/django(링크 생성)

12. sudo nginx -t # 설정이 올바른지 테스트 => sudo vi /etc/nginx/nginx.conf  에서 첫번째 줄 user 정보 ubuntu로 바꾸기

13. cd /etc/systemd/system => sudo vi gunicorn.service 후 아래 내용 추가

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=<manage.py가 위치한 디렉토리 pwd>
ExecStart=<gunicorn이 설치된 가상환경 위치> \
        --workers 2 \
        --bind unix:/tmp/gunicorn.sock \
        <프로젝트 이름>.wsgi:application

[Install]
WantedBy=multi-user.target

14. sudo systemctl start nginx => sudo systemctl start  gunicorn

15. Debug = False로 바꾸기

16. Postman 호스트 바꾸기

 

참고1: https://zhelddustmq.tistory.com/128

 

Django 서버 배포하기

01. 클라우드 컴퓨팅    우리가 제작한 Django 서비스는 1년 365일 24시간 돌아가야 함즉, 우리는 안정적으로 항상 켜져 있는 컴퓨팅 자원이 필요 01. 클라우드 컴퓨팅: 쉽게 말하면 물리적 서버를

zhelddustmq.tistory.com

 

참고2: https://wolfy.tistory.com/299

'Django' 카테고리의 다른 글

장고 커서 페이지네이션  (0) 2024.10.02
django admin 커스터마이징 시 유의점  (0) 2024.10.01
Django MTM field 단점  (0) 2024.09.23
Django permissoin_classes (GET, POST 나누기)  (0) 2024.09.05
Django 서버 배포하기  (4) 2024.09.03