장고 - EC2에 장고 서버 셋팅
EC2에 SSH로 접속
1
$ ssh -i ~/.ssh/[키 페어 파일 이름; django-wps.pem] ubuntu@[도메인 주소]
장고를 위한 계정 추가
1
$ sudo useradd -g www-data -b /home -m -s /bin/bash django
소스 코드 업로드할 폴더 생성
1
$ sudo mkdir -p /var/www/django
소스코드 폴더의 소유자 변경
1
$ sudo chown -R django:www-data /var/www/django
파일 업로드를 위해 ubuntu 계정을 www-data 그룹에 추가
1
$ sudo usermod -a -G www-data ubuntu
소스 코드 폴더에 그룹 쓰기 권한 부여
1
$ sudo chmod -R g+w /var/www/django
파이썬 관련 패키지 설치
1
$ sudo apt-get install python3-dev python3-venv python3-pip
소스 코드 폴더 밑에 파이썬 가상 환경 생성
1
2$ pip3 install virtualenv
$ sudo python3 -m virtualenv /var/www/django/venv관리자 모드로 변경
1
$ sudo -s
소스 코드 폴더에서 가상환경 활성화
1
2$ cd /var/www/django
$ source venv/bin/activate가상환경에 장고 설치
1
$ pip install django
장고 프로젝트 생성 및 settings.py 설정
1
2
3$ django-admin startproject config .
$ cd config
$ vi settings.py1
2...
ALLOWED_HOST = ['*']1
$ cd ..
migrate 및 runserver 서버 실행하여 django 연결되었는지 확인
1
2$ python manage.py migrate
$ python manage.py runserver 0:8000WSGI 모듈 중 하나인 uwsgi 설치
1
$ pip install uwsgi
uwsgi 잘 동작하는지 확인
1
$ uwsgi --http :8000 --home /var/www/django/venv/ --chdir /var/www/django/ --module config.wsgi
관련 폴더 생성 및 설정(run, logs 폴더 생성)
1
$ sudo mkdir run logs
폴더 소유권 변경
1
2$ sudo chown django:www-data run
$ sudo chown django:www-data logsini 폴더 생성
1
$ sudo mkdir ini
ini 폴더 안에 uwsgi.ini 파일 작성
1
$ sudo vim ini/uwsgi.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19[uwsgi]
uid = django
base = /var/www/django
home = %(base)/venv
chdir = %(base)
module = config.wsgi:application
env = 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
vacuum = true
~
~uwsgi.service 파일 생성
1
$ sudo vim /etc/systemd/system/uwsgi.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17[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
~
~uwsgi.service 시작하고 시작프로그램으로 등록
1
2$ sudo systemctl start uwsgi
$ sudo systemctl enable uwsgi기존 스테틱 웹 서버에서 장고 애플리케이션 구동하기 위해 사이트 설정 파일 변경
1
$ sudo vim /etc/nginx/sites-available/staticweb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17upstream django {
server unix:/var/www/django/run/uwsgi.sock;
}
server {
listen 80;
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 / {
include /etc/nginx/uwsgi_params;
uwsgi_pass django;
}
}장고 소스코드가 있는 폴더의 소유자와 권한 변경
1
2
3$ sudo chown -R django:www-data /var/www/django
$ sudo chmod -R g+w /var/www/django
# -R : Recursive 옵션; 하위폴더까지 계속 반복해서 적용소스코드 파일 수정되었으므로, uwsgi 재실행
1
$ sudo systemctl restart uwsgi
웹 브라우저 접속하여 사이트 구동여부 확인
Posted