반응형
1. Ngnix 설치
apt-get install nginx
2. Nginx 설정 파일 생성 및 업데이트
nginx 설정으로 외부 IP 80 port로 전달된 request를 내부 ip 8000port로 연결한다.
vi /etc/nginx/site-enabled/django-website
server {
listen 80;
server_name : [외부 ip 정보]
location / {
proxy_pass http:127.0.0.1:8000/;
}
}
여기서 외부 IP를 도메인에 연결한 경우 server_name을 자신이 등록한 도메인 이름으로 작성한다.
예를 들어 test.com 도메인 인 경우
server_name : test.com www.test.com
와 같이 server_name을 작성한다. 변경이 완료된 후 nginx를 아래 명령어로 재시작한다.
sudo systemctl restart nginx
장고 프로젝트를 runserver를 이용하여 deploy하지 않는 경우 static파일들을 "collectstatic"파일을 통해서 폴더에 모으는 작업이 필요하다.
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
이때 static파일들을 모을 폴더의 위치를 settings.py에서 STATIC_ROOT라는 변수로 저장한다. 위와 같이 장고 프로젝트의 위치인 BASE_DIR 위치에 'static'과 'media'폴더를 생성하고 각각을 STATIC_ROOT와 MEDIA_ROOT로 지정한다.
"python3 manage.py collectstatic" 명령을 수행하여 INSTALLED_APP 목록의 장고 앱들의 static 폴더들이 STATIC_ROOT 위치로 옮길 수 있다. 그리고 STATIC_ROOT에 이동된 static파일을 사용하기 위해서 nginx에 STATIC_ROOT 위치를 추가해야 한다.
server {
listen 80;
server_name [자신의 도메인이름.com] [www.자신의 도메인이름.com]
location / {
proxy_pass http://127.0.0.1:8000/;
}
location /static/ {
alias [자신의 장고 프로젝트의 STATIC_ROOT 절대경로]/;
}
}
위와 같이 /static/ 부분을 추가해서 css등의 static 파일을 장고 프로젝트에서 사용할 수 있도록 한다.
반응형
'Programming > Python' 카테고리의 다른 글
[Python] 인수를 여러개 받기 (위치/키워드/언패킹) (0) | 2022.12.10 |
---|---|
[Django] Gunicon Django에 적용하기 (0) | 2022.12.02 |
우분투 Python 가상환경 만들기 (0) | 2022.08.30 |
우분투에 VSCODE 파이썬 개발환경 설정하기 (0) | 2021.12.19 |
[Python] 아나콘다 가상환경 주피터노트북에서 사용하기 (0) | 2021.01.21 |