AWS 배포

PANGHYUK·2022년 2월 3일
0

AWS 배포

목록 보기
1/1
post-thumbnail

서버 세팅

  • sudo: Super Do(강력한 권한)
  • apt-get: Advanced Packaging Tool(패키지 관련 명령어 도구)
  • pip: python 패키지 관리 명령어 도구
# 패키지 관련 명령어 업데이트
sudo apt-get update

# 필수 프로그램 설치
sudo apt-get install build-essential

# 파이썬 설치
sudo apt-get install python3

# pip 설치
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip

장고 프로젝트 연동

  • 키 페어 생성
  • -t rsa => rsa 타입의 암호 생성
ssh-keygen -t rsa
  • 생성한 public key 내용 확인
cat ~/.ssh/id_rsa.pub

github 연동

# server에 github clone
git clone [repository 주소]

# virtualenv 가상환경 프로그램 설치
sudo apt-get install virtualenv

# 프로젝트 접속
cd [프로젝트 이름]

# 가상환경 생성
virtualenv -p python3 venv

# 가상환경 실행
source venv/bin/activate

# Django & all-auth 설치
pip install django
pip install django-allauth

# 서버 실행
python manage.py runserver 0.0.0.0:8000

uWSGI 설치 및 설정

# uwsgi 설치
pip install uwsgi

# uwsgi 초기값 설정
nano uwsgi.ini
[uwsgi]
chdir=/home/ubuntu/레포지토리 이름
module=프로젝트 파일 이름.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/home/ubuntu/레포지토리 이름/Django.log
home=/home/ubuntu/레포지토리 이름/venv
virtualenv=/home/ubuntu/레포지토리 이름/venv
socket=/home/ubuntu/레포지토리 이름/uwsgi.sock
chmod-socket=666
  • 작성 후 ctrl+x -> y -> enter
# 방금 생성한 uwsgi.ini에서 설정한 내용을 적용
uwsgi --ini uwsgi.ini

Nginx 설치 및 설정

# nginx 설치
sudo apt-get install nginx

# nginx 설정 파일
sudo nano /etc/nginx/nginx.conf

# 입력 추가
http {
	upstream django {
    	server unix:/home/ubuntu/레포지토리 이름/uwsgi.sock;
        	}
}

# sites-enabled의 파일 불러와서 서버 세팅
sudo nano /etc/nginx/sites-enabled/default

# 입력 추가
location / {
			# try files 삭제
            include /etc/nginx/uwsgi_params;
            uwsgi_pass django;
            }

'''python manage.py collectstatic 실행 했을 경우'''

# static 경로 설정
location /static/ {
		alias /home/ubuntu/레포지토리 이름/static/;
        }

# media 경로 설정        
location /media/ {
		alias /home/ubuntu/레포지토리 이름/media/;
        }

# nginx 서버 실행
sudo service nginx restart

### 502 Bad Gateway 해결 (nginx/1.18.0 에러)
# 1. nginx.conf 파일에서 user www-data;를 user ubuntu;로 변경
sudo nano /etc/nginx/nginx.conf

# 2. site-enable 파일의 프록시 버퍼 늘리기
sudo nano /etc/nginx/sites-enabled/default

# location/ 부분에서 추가
    proxy_buffer_size          128k;
    proxy_buffers              4 256k;
    proxy_busy_buffers_size    256k;

0개의 댓글