나의 재물운? 연애운은?
AI가 봐주는 내 사주팔자 - 운세박사
개발 수정 후에 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 빌려서 똑같이 세팅해보기
나의 재물운? 연애운은?
AI가 봐주는 내 사주팔자 - 운세박사