Django -프로젝트 수정 후 배포 및 껐다 키기, 초기 인프라 세팅 등

나의 재물운? 연애운은?

AI가 봐주는 내 사주팔자 - 운세박사

https://aifortunedoctor.com/

Django -프로젝트 수정 후 배포 및 껐다 키기, 초기 인프라 세팅 등

영리치 0 1,987 2022.01.12 19:03



개발 수정 후에 git repository에 배포하기


맥에서 우분투 접속하기 (PEM 키가 있는 폴더에서 접속해야 함)

ssh -i "OOOOO-rds.pem" ubuntu@~



[CMD] clear // 커맨드 창에서 쓸 데 없는 거 날리기

[CMD] cd OOOOO-django/

[CMD] git pull origin master // git에서 최신 코드 받기

[CMD] sudo supervisorctl restart all // 전부 다 새롭게 실행 시키기







OOOOO:daphne: stopped // 엔진엑스에서 들어오는 리퀘스트를 서버로 옮겨줌.

OOOOO:gunicorn: stopped // 서버. 엔진엑스에서 들어오는 리퀘스트 장고로 옮겨줌.

celery: stopped // 큐 관리

celery: started

OOOOO:gunicorn: started

OOOOO:daphne: started


현재 우분투에서 돌아가고 있는 프로세스

1. 엔진엑스

2. 구니콘

3. 다프네

4. 샐러리

5. 레디스 // 소켓 백그라운드 or 중심

6. PostgreSQL


레디스는 DB랑 똑같다 보면 됨.

구니콘이랑 다프네도 비슷함. 비동기랑 동기냐 차임.



EC2 초기 세팅

- 프로젝트 넣고 (git)

- 슈퍼바이저 세팅

- 엔진엑스 세팅

- https 인증서 깔아줌. (cert bot 파이썬 패키지)


// 아래는 인증서 세팅

sudo apt-get install letsencrypt -y

sudo apt-get install python3-certbot-nginx -y

sudo certbot --nginx // 인증서 만들기, 이때 80번 포트가 열려있어야 함. 인증해주는 서버랑 통신을 해야함. 내 PC안에 PEM키를 공짜로 박아줌.

 => https key pairt생성


http{

        server{

                listen 443 ssl http2;

                ssl_certificate /etc/letsencrypt/live/hostjujun.ddns.net/fullchain.pem;

                ssl_certificate_key /etc/letsencrypt/live/hostjujun.ddns.net/privkey.pem;

                ssl_protocols TLSv1.3;


                root /home/ubuntu/jujun/;

                }

}

갱신

sudo certbot renew --dry-run







     server{

        server_name admin.OOOOO.com;

        location / {

                proxy_pass http://0.0.0.0:8000;

                proxy_set_header Host $host;

                proxy_http_version 1.1;

        }

        location /static/ {

                alias /home/ubuntu/OOOOO-django/static/;

                access_log off;

        }



[CMD] htop // 프로세스 확인

- 우분투

- AWS

- Supervisor (구니콘, 샐러리, 다프네)

- 엔진엑스

- Python

- 레디스

- 포스트그레스큐엘


[CMD] sudo nginx -s reload // 엔진엑스 재부팅


장고와 엔진엑스를 누가 먼저 키는지는 상관 없음.


리퀘스트 요청 플로우

https 443 포트 -> 엔진엑스 -> 구니콘(8000) -> 장고 (처리) -> PostgreSQL 접근 -> 데이터 뽑아옴 -> (처리) -> Response



장고에서 아래 명령어 치면 돌아가고 있는 스케쥴링 프로세스 볼 수 있음.

[CMD] python3 manage.py crontab show



숙제: EC2 빌려서 똑같이 세팅해보기

Comments

나의 재물운? 연애운은?

AI가 봐주는 내 사주팔자 - 운세박사

https://aifortunedoctor.com/

Category
Magazine
훈남/훈녀
 
 
 
상점
Facebook Twitter GooglePlus KakaoStory NaverBand