기존에 학식봇을 포함하여 최근 어플을 제작하고 있는데 뒷단을 장고로 사용하고 있다.
Django Rest framework를 사용하면 크게 사용자가 건드릴 필요 없이 API서버를 구축할 수 있다.
정말 편한 라이브러리라서 앞으로의 API서버 구축은 모두 장고로 할 것 같다.
튼, 여러모로 장고를 많이 사용하고 있었는데 SSL를 적용해야해서 관련 문서를 찾고 있었다.
그런데 대부분의 예제들이 모두 장고를 아파치나 Nginx와 연동하여 적용시키고 있었다.
왜 그랬는지 몰랐는데 특정 블로그에서 그 이유를 찾았다.
나는 대부분 runserver + nohup으로 백그라운드에서 서버가 돌도록 구동시키고 있었다.
그런데 runserver는 개발시에만 사용하고 실 서비스할때에는 아파치등의 서버에 올려서
작동시키라고 장고팀에서도 권장하고 있다고 한다.
몇달동안 장고를 썼는데 처음 안 사실이다.
그래서 장고(Django)와 아파치(Apache) 웹서버를 연동시키는 방법에 대해서 포스팅한다.
(장고와 아파치는 깔려있다고 가정한다. 서버 환경은 Ubuntu 16.04이다)
먼저 apt-get을 업데이트 한다.
sudo apt-get update
mod-wsgi를 설치해줘야 한다.
sudo apt-get install libapache2-mod-wsgi
파이썬3을 사용한다면 위 라이브러리도 같이 설치해줘야 한다.
sudo apt-get install libapache2-mod-wsgi-py3
이제 설정파일을 수정해야한다.
sudo vi /etc/apache2/sites-available/000-default.conf
먼저 static폴더를 연결해줘야 한다.
장고에서 visualize한 정보들은 모두 static폴더에 있기 때문이다.
나는 Rest framework를 사용하고 있으므로 해당 경로대로 줬다.
Alias /static /home/프로젝트이름/static
<Directory /home/프로젝트이름/static>
Require all granted
</Directory>
형식으로 입력한다.
다음으로 wsgi.py에 관해 설정해줘야 한다.
<Directory /home/app/wsgi.py가 있는 경로>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess 프로젝트명 python-home=/home/가상환경경로/env python-path=/home/프로젝트경로
WSGIProcessGroup rest
WSGIScriptAlias / /home/wsgi.py가 있는 경로/wsgi.py
나는 virtualenv환경으로 작업하기 때문에 위 정보를 추가적으로 넣어줬다.
최종적으로 입력된 정보는 다음과 같다.
저장하고 나온다음에
sudo service apache2 restart로 아파치를 재시작해준다.
그리고 들어가보면 정상적으로 돌아간다.
'Coding > Python' 카테고리의 다른 글
Django pipenv로 가상환경 구축 (0) | 2018.04.18 |
---|---|
Django Restframework HTTP Method Override하는 방법 (0) | 2018.03.16 |
Django Restframework 특정 컬럼만 출력하는 방법 (0) | 2018.02.15 |
Django Rest framework 다른 테이블 Join 시키는 방법 (0) | 2018.02.06 |
Django 외래키(Foreign key) 생성 방법/관련 이슈 (2) | 2018.02.05 |