EC2에 장고 서버 설정하기
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
EC2에 장고 서버 설정하기
2019.06.05 EC2에 장고 서버 설정하기
EC2에 장고 서버 설정하기
EC2에 장고 서버 셋팅하기
01. VIM 설치
sudo apt-get install vim
02. 파이썬 관련 패키지 설치
sudo apt-get install python3-dev python3-venv python3-pip
03. django 애플리케이션 구동용 계정을 생성합니다.
sudo useradd -b /home -m -s /bin/bash django
04. www-data 그룹에 django 유저를 추가합니다.
sudo usermod -a -G www-data django
05. FTP로 업로드 할 때 ubuntu 계정을 사용하기 때문에, 애플리케이션 소스코드 폴더에 쓰기 권한을 얻기 위해 www-data 그룹에 ubuntu 유저를 추가합니다.
sudo usermod -a -G www-data ubuntu
06. 소스코드를 업로드 하기 위한 폴더를 만듭니다.
sudo mkdir -p /var/www/django
-p는 사이경로를 모두 만들어준다.
07. 소스코드 업로드 폴더의 소유자 변경
sudo chown django:www-data /var/www/django
08. 소스코드 폴더에 그룹 쓰기 권한을 부여
sudo chmod -R g+w /var/www/django
09. 가상 환경을 소스코드 폴더 밑에 만듭니다.
sudo python3 -m venv /var/www/django/venv
10. 관리자 모드로 변경 이후 가상 환경 활성화
sudo -s
source venv/bin/activate
11. 가상 환경에 장고 설치 및 프로젝트 생성
pip install django
django-admin startproject config .
python manage.py migrate
12. WSGI 모듈 중 하나인 uwsgi 설치
pip install uwsgi
13. uwsgi 동작확인
uwsgi --http :8000 --home /var/www/django/venv/ --chdir /var/wwww/django/ --module config.wsgi
DisallowedHost 확인하기 DEBUG 상태 및 allow host 조정 필요
14. UWSGI 모듈을 위한 폴더를 만듭니다.
sudo mkdir /var/www/django/run
sudo mkdir /var/www/django/logs
sudo mkdir /var/www/django/ini
현재 해당 폴더에 있으면
sudo mkdir sudo mkdir run logs ini
15. 폴더의 소유권 변경
sudo chown django:www-data rrun
sudo chown django:www-data logs
16. uwsgi.ini 파일을 작성해줍니다.
sudo vim /var/www/django/ini/uwsgi.ini
[uwsgi] uid = django base = /var/www/django home = %(base)/venv chdir = %(base) module = config.wsgi:application evn = DJANGO_SETTINGS_MODULE=config.settings master = true processes = 5 socket = %(base)/run/uwsgi.sock logto = %(base)/logs/uwsgi.log chown-socket = %(uid):www-data chmod-socket = 660 vaccume = true
17. uwsgi.service 파일 생성 및 작성
sudo vim /etc/systemd/system/uwsgi.service
[Unit] Description=uWSGI Emperor service [Service] ExecStart=/var/www/django/venv/bin/uwsgi --emperor /var/www/django/ini User=django Group=www-data Restart=on-failure KillSignal=SIGQUIT Type=notify NotifyAccess=all StandardError=syslog [Install] WantedBy = multi-user.target
18. uwsgi.service를 시작하고 시작프로그램으로 등록
sudo systemctl start uwsgi
sudo systemctl enable uwsgi
19. 사이트 설정파일을 변경하여 기존의 스테틱 웹 서버에서 장고 애플리케이션이 구동하도록 변경
sudo vim /etc/nginx/sites-available/staticweb
이전에 이미 설정 완료!
upstream django { server unix:/var/www/django/run/uwsgi.sock; } server { listen 80 default_server; listen [::]:80 default_server; charset utf-8; access_log /var/www/django/logs/access.log; error_log /var/www/django/logs/error.log; server_name _; location = /favicon.ico {access_log off; log_not_found off; } location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. include /etc/nginx/uwsgi_params; uwsgi_pass django; } }
20. 전체 권한 변경
sudo chown -R django:www-data /var/www/django
소스코드 업데이트 할 때
sudo chmod -R g+w /var/www/django 새로운 폴더에 대해서는 쓰기 권한이 없어서 이후에 올릴 때 올라가지 않을 수도 있다.
sudo systemctl restart nginx
from http://daeguowl.tistory.com/148 by ccl(A) rewrite - 2020-03-16 09:54:14
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기