SECRET_KEY
DEBUG
True
이면 개발 단계에서 개발자를 위해 도와주는 디버그 정보가 보여지게 됨. 하지만 배포 시에는 프로젝트 보안 상 디버그 정보가 노출 되어서는 안 됨.포스팅 참고하기
1. .gitignore, .env 생성
pip install python-decouple
from decouple import config
SECRET_KEY = config('DJANGO_SECRET_KEY')
4..env에서 환경변수 지정하기
runserver
는 통해 프로젝트를 실행하는 개발용으로 임시로 쓰는 서버로, 실제 배포할 때에는 적합하지 않음.collectstatic
입니다1. settings.py에서 STATIC_ROOT 변수에 static 파일들을 모을 경로를 설정
STATIC_ROOT = BASE_DIR / 'staticfiles'
2. collectstatic 명령어로 static 파일들을 모음
python manage.py collectstatic
(출처 - https://wikidocs.net/75556)
💡 WSGI는 웹서버와 파이썬 앱 사이를 연결해주는 어플리케이션 서버. 다양한 프로그래밍 언어의 웹 어플리케이션을 실행 및 관리
사용자 <-> 웹 서버 <-> WSGI <-> 장고
pip install uwgsi
1. .config 폴더
1-1. 프로젝트 하위에.config 폴더 생성
1-2. config >uwsgi 폴더 생성
1-3. config > uwsgi > uwsgi.ini 파일 생성
2. log 폴더
2-1.프로젝트 아래 log 폴더 생성
2-2. log> uwsgi 폴더 생성
3. tmp 폴더
[uwsgi]
chdir = /workspace/<프로젝트명>/
module = MBIT.wsgi:application
home = /workspace/<프로젝트명>/venv/
uid = root
gid = root
http = :80
enable-threads = true
master = true
vacuum = true
pidfile = /workspace/<프로젝트명>/tmp/<프로젝트명>.pid
logto = /workspace/<프로젝트명>/log/uwsgi/@(exec://date +%%Y-%%m-%%d).log
log-reopen = true
static-map = /static=/workspace/<프로젝트명>/staticfiles/
chdir
: django project의 manage.py가 존재하는 경로를 지정해줍니다.module
: wsgi 파일을 지정해줍니다.home
: 가상환경의 경로를 지정해줍니다.uid
, gid
: uWSGI를 실행할 사용자 및 사용자그룹을 지정해줍니다.http
: http 프로토콜을 통해서 요청을 받으며 포트 번호를 정해줍니다.enable-threads
: 스레드 사용 여부를 결정합니다.master
: 마스터 프로세스 사용 여부를 결정합니다.vacuum
: 실행 시 자동 생성되는 파일들을 삭제해줍니다.pidfile
: 실행되는 프로세스의 id 값을 담고 있는 파일, pidfile의 경로를 지정해줍니다.logto
: 로그파일을 작성할 위치를 설정합니다.log-reopen
: 재시작할 시 로그를 다시 열어줍니다.uwsgi -i .config/uwsgi/uwsgi.ini
💡 웹 서버가 주기능. HTTP 트래픽 관리에 중점
1. 구름 IDE에서 설치확인하기
nginx -v
2. .config/nginx/<프로젝트명>.conf 파일 생성하기
3. .config/nginx/<프로젝트명>.conf 파일수정
server {
listen 80;
server_name *.run.goorm.io;
charset utf-8;
client_max_body_size 128M;
location / {
uwsgi_pass unix:///workspace/<프로젝트명>/tmp/<프로젝트명>.sock;
include uwsgi_params;
}
location /static/ {
alias /workspace/<프로젝트명>/staticfiles/;
}
}
4. .config/nginx/<프로젝트명>.conf 파일을 /etc/nginx/sites-available/ 폴더에 복사
cp -f /workspace/<프로젝트명>/.config/nginx/<프로젝트명>.conf /etc/nginx/sites-available/
sites-available
폴더는 가상 서버 환경들에 대한 설정 파일들이 위치하는 부분 5. sites-available
로 이동한 설정 파일을 sites-enabled
에 링크해줍니다.
ln -sf /etc/nginx/sites-available/<프로젝트명>.conf /etc/nginx/sites-enabled/
6. sites-enabled 폴더에 있던 default 파일 삭제
rm /etc/nginx/sites-enabled/default
1. 소켓 설정을 위해 uwsgi.ini파일을 수정
socket = /workspace/<프로젝트명>/tmp/<프로젝트명>.sock
chmod-socket = 666
chown-socket = root:root
2. 소켓 활성화하기
uwsgi -i .config/uwsgi/uwsgi.ini
3. Nginx 실행하기
service nginx start
메뉴 상단에 실행바> 실행 명령 추가
원하는 이름, 스크립트 및 기타 옵션을 설정 후 저장
새로 설정한 실행옵션을 클릭하여 실행
502 Bad Gateway nginx/1.14.0 (Ubuntu) 발생시 해결법👈