본문 바로가기
공부

[배포] 1. Django EC2 배포 방법(feat. uWSGI)

by BeforB 2021. 8. 24.
728x90

 

참고링크

아래 링크의 내용을 바탕으로 직접 Django를 EC2에 배포해보고, 내용을 요약하여 정리해보았다.

 

Django 서비스 AWS로 배포하기 - [3] uWSGI 연결하기

Django 서비스 AWS로 배포하기 - [1] 프로젝트 준비와 AWS 서버 대여 Django 서비스 AWS로 배포하기 - [2] github과 프로젝트 업로드 지난 포스트 까지 서버에 나의 프로젝트를 git을 통해 업로드 해보았습니

nerogarret.tistory.com

 

 

TIP

# ubuntu 명령어
# 참고 - https://velog.io/@devyang97/Linux-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-Ubuntu-%EC%82%AC%EC%9A%A9

$ pwd		# 현재 디렉토리 경로 확인
$ ls		# 현재 디렉토리 내 폴더, 파일 리스트 출력
		# option) -a, -l, -al, -R, ...
$ ls [특정폴더명]  # 특정 폴더 내 폴더, 파일 리스트 출력
$ mkdir		# 디렉토리 생성
$ vi [파일명]	# 파일 편집
$ cat [파일명] 	# 파일 내용 출력

$ cd [디렉토리명] 	# 디렉토리로 이동
$ cd .. 	# 상위 디렉토리로 이동
$ cd		# 루트 디렉토리로 이동

 

 

RUNSERVER

1. EC2 접속

$ ssh -i J3A401T.pem ubuntu@j3a401.p.ssafy.io

 

 

2. python3-venv 설치, 프로젝트 clone

$ sudo apt-get install python3-venv
$ git clone 프로젝트 주소

 

 

3. 가상환경 생성

ubuntu: ~$ cd ~
ubuntu: ~$ python3 -m venv myvenv
ubuntu: ~$ ls	# myvenv 생성되었는지 확인

 

 

4. 가상환경 활성화

ubuntu: ~$ source myvenv/bin/activate
# (myvenv) ubuntu: ~$  ---- activate 후에 앞에 (myvenv) 생김

 

 

 

5. 프로젝트 폴더로 이동, requirements.txt를 통해 패키지 설치

(myvenv) ubuntu: ~$ cd test_aws/sub2/backend
# manage.py가 있는 위치로 이동(ls 명령어로 확인)

 

(myvenv) ubuntu: ~$ pip3 install -r requirements.txt

 

 

 

6. runserver

포트는 본인이 설정

(myvenv) ubuntu: ~$ python3 manage.py runserver 0:8000

 

도메인 주소와 포트(8000)를 이용해서 브라우저 접속 확인(Error -> 7에서 확인)

https://j3a401.p.ssafy.io:8000

 

 

7. allowed host 설정

프로젝트 폴더 내 settings.py에서 allowed host 설정

# settings.py가 있는 위치로 이동
(myvenv) ubuntu: $ cd backend		# backend 대신 본인 프로젝트명 사용
(myvenv) ubuntu: $ vi settings.py	# settings.py 편집
# ALLOWED_HOSTS = ['127.0.0.1', 'localhost', 'j3a401.p.ssafy.io'] 추가

 

 

8. runserver

(myvenv) ubuntu: $ python3 manage.py runserver 0:8000
# https://j3a401.p.ssafy.io 접속 후 확인

 

 

 

 


uWSGI 서버 연결하기

1. uwsgi 패키지 설치

$ source ~/myvenv/bin/activate  # 가상환경 활성화(이미 되어있다면 패스)
$ pip3 install uwsgi

 

 

 

2. uwsgi 서버를 이용해서 Django 프로젝트 연결

양식

$ uwsgi --http :[포트번호] --home [가상환경 경로] --chdir [Django프로젝트 경로] -w [wsgi 모듈이 있는 폴더].wsgi

 

예제

$ uwsgi --http :8000 --home /home/ubuntu/myvenv/ --chdir /home/ubuntu/test_aws/sub2/backend -w /home/ubuntu/test_aws/sub2/backend/backend.wsgi

 

가상환경 경로 : 위에서 ~에 myvenv를 설치했으므로 ~/myvenv/ 이지만 절대경로로 지정해주는 것이 좋음.

/home/ubuntu/myvenv/

 

장고 프로젝트 폴더 경로 : manage.py가 있는 경로. 마찬가지로 절대경로로 지정

/home/ubuntu/test_aws/sub2/backend

 

wsgi 모듈이 있는 폴더 : 위 프로젝트 폴더 내에 backend(각자 프로젝트마다 다름) 안에 wsgi.py가 있는 폴더명 뒤에 .wsgi 추가

/home/ubuntu/test_aws/sub2/backend/backend.wsgi

 

 

 

서버 배포 완료!!!

 

 

 

 

 

 

 

 

 

 

 

728x90

댓글