Drag & Drop에 프론트 파일 넣기



Drag & Drop을 통해 변경된 파일을 올리면 된다.
cloud9을 활용해 배포를 진행하도록 하겠다. 

cost-saving setting을 하루로 변경해주었다. 해당 세팅이 되어 있지 않으면 과금이 될 수도 있다.


보안그룹으로 이동해 인바운드 규칙을 수정해준다.


pyenv를 클론하도록 하겠다. 또한 아래의 명령어들을 전부 입력해주면 된다. $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ sed -Ei -e '/^([^#]|$)/ {a \
export PYENV_ROOT="$HOME/.pyenv"
a \
export PATH="$PYENV_ROOT/bin:$PATH"
a \
' -e ':a' -e '$!{n;ba};}' ~/.profile
echo 'eval "$(pyenv init --path)"' >>~/.profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
터미널을 한 번 꺼주고 아래의 명령어를 입력해준다. $ pyenv -v
# 출력 확인 => pyenv 2.3.2-1-g207f33fc

10. 내가 백앤드를 만들 때 사용했던 버전의 python을 깔아준다.
$ pyenv install 3.9.10

11. python의 버전을 확인하고, 우리의 버전으로 변경해주는 작업을 진행한다.
$ python -v

$ python global 3.9.10
$ python -v

$ cd ~ <<<< 홈으로 이동
$ git clone https://github.com/nikevapormax/turtle_drf_backend.git

$ ssh-keygen -t rsa -C "wjdeorms27@naver.com"

14. 저장된 ssh키를 불러와 깃헙에 세팅해준다.
$ cat /home/ubuntu/.ssh/id_rsa.pub
>>>> 저장된 경로는 위의 사진에서 볼 수 있다!
settings -> SSH and GPG keys -> New SSH key -> 이름 설정 및 키 복붙
SSH 메뉴에 있는 주소를 복사해서 클론을 진행해야 된다.
우클릭 - 삭제로 지울 수 있고, rm -rf {폴더명}을 입력해 지울 수도 있다.$ ls
$ cd turtle_drf_backend
$ python -m venv venv
$ source venv/bin/activate
$ pip install -r requirements.txt


$ python manage.py loaddata {파일명}

staticfiles가 생겨야 한다.$ python manage.py collectstatic
$ pip install gunicorn
$ gunicorn --bind 0.0.0.0:8000 turtle_drf.wsgi:application

.env가 문제였다.시크릿키 = 시크릿키로 세팅해주어야 잘 돌아간다.turtle_drf_backend.wsgi:application가 되질 않았었다. 해당 부분은 wsgi가 있는 그 폴더의 이름을 입력해주어야 한다.
http://3.34.2.245:8000/를 입력해보면 아래의 창이 나온다. 비록 에러지만 장고에 접근해 있는 것을 볼 수 있다.
settings.py에서 가서 ALLOWED_HOSTS에 우리의 주소를 넣어주도록 하자. 그리고 서버를 재시작하여 결과를 살펴보자.
$ gunicorn --bind 0.0.0.0:8000 turtle_drf.wsgi:application

$ sudo vim /etc/systemd/system/gunicorn.service

i를 입력해 insert 모드로 변경해 작업하도록 하겠다.
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/{루트폴더}
ExecStart=/home/ubuntu/{루트폴더}/venv/bin/gunicorn \
--workers 3 \
--bind 127.0.0.1:8000 \
{프로젝트폴더}.wsgi:application
[Install]
WantedBy=multi-user.target
esc 키를 누르고 :를 입력한 다음, 저장하고 끄겠다는 뜻의 wq를 입력해준다. q는 그냥 끄는 것이므로 주의!
$ sudo systemctl daemon-reload
$ sudo systemctl start gunicorn
$ sudo systemctl enable gunicorn
$ sudo systemctl status gunicorn <<< 상태 확인

24. 이제 브라우저에서 새로고침을 눌러 결과를 확인해보면 아래와 같이 되지 않는다. 하지만 이게 정상이다. 이제 nginx와 연결해주어야 한다.

$ sudo apt-get update

26. nginx를 설치해준다.
$ sudo apt-get install -y nginx

27. nginx에 대한 설정을 진행해준다.
$ sudo vim /etc/nginx/sites-available/{프로젝트이름}
i를 눌러 insert창으로 들어간다. 그리고 설정값을 넣어주면 된다. esc 키를 누르고 :를 입력한다. 그리고 wq를 입력한 뒤 엔터를 치면 된다.server {
listen 80;
server_name {나의 서버주소(3.34.2.245)};
location /static {
root /home/ubuntu/{프로젝트 폴더이름}/;
}
location /media {
root /home/ubuntu/{프로젝트 폴더이름}/;
}
location / {
include proxy_params;
proxy_pass http://0:8000;
}
}
$ sudo ln -s /etc/nginx/sites-available/turtle_drf_backend /etc/nginx/sites-enabled/
$ sudo systemctl restart nginx
$ sudo systemctl status nginx.service
현재 나는 아래의 에러가 나고 있다.

그래서 2 가지의 해결책을 사용해 보았다.
아파치 서버 죽이기(포트를 사용중일 수 있음)
$ sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill

nginx 문법 검사
$ sudo nginx -t

일단 해당 부분은 넘어가도록 하며, 아까 낮에 하다가 끊기고 밤에 다시 해서 그런 것일수도 있을 거같다.

백앤드는 http이고 프론트앤드는 https이다.
CORS_ALLOWED_ORIGINS에 우리의 프론트 주소를 넣어주어야 한다.
http와 https의 차이이다.