@@@@@@@@@@@@@@@
2020 5/15 작성
2020 7/16 수정
@@@@@@@@@@@@@@@
Aws ec2 그리고 가상환경은 Anaconda or Miniconda 로 했다는 가정하에 진행한다.
https://invalueable.tistory.com/71?category=752115
이블로그를 참조했습니다.
https://soyoung-new-challenge.tistory.com/62?category=831257
1. Django (2.2.5) 버전사용 설치
conda install -c anaconda django==2.2.5
2.Django 프로젝트 시작
django-admin startproject 프로젝트이름
시작하면 프로젝트이름으로 폴더가 생성된다.
1) manage.py : 실행시 사용 ( runserver )
2) 프로젝트이름/settings.py : 장고 프로젝트 설정을 하는 곳
3) 프로젝트이름/urls.py : 앱단위 전체 url을 관리하는 곳
4) wsgi.py : 배포관련 파일이 존재하는 곳
3.Django 확인하기 , 외부접속
1. Aws에 보안그룹에서 8000 포트를 열어주어야한다 (포트번호는자유)
2. 프로젝트/setting.py 에서 ALLOWED_HOSTS = [] 가있을텐데 [] 를 ['*'] 로 바꿔주자
ㄱㄱ
python manage.py runserver 0:8000
접속되면 잘된것 ㅇㅇ
추가적으로 앱을 새로 시작 (추후에 다루기로함)
python manage.py startapp 앱이름
4.Gunicorn 설치
보통 Gunicorn 아니면 uwsgi를 쓰더라.(이 두개는 나중에 비교해보자)
Gunicorn으로 해보자
1. conda 명령어로 설치 ㄱㄱ
conda install -c anaconda gunicorn
2.설치후 프로젝트안에 manage.py가 있는 경로에서 실행
gunicorn --bind 0.0.0.0:8000 프로젝트이름.wsgi:application
에러 없이 4줄뜨면 잘된것 ㅇㅇ
그리고 ip주소 + :8000 으로 접속해서 확인해보자
5.Gunicorn 설정
system에 Gunicorn을 등록하자 .
vi /etc/systemd/system/gunicorn.service
안되면 저장안될지 sudo붙여서 실행하자.
경로못찾아서 이것때문에 진짜 해맴 ㅠ
여튼 적어주자.
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=사용자이름
Group=www-data
WorkingDirectory=프로젝트 설치경로(manage.py파일이있는곳)
ExecStart= Gunicorn 실행위치
[Install]
WantedBy=multi-user.target
사용자이름은 aws ubuntu 를 사용한다면 디폴트로 ubuntu 이다 !
ExecStart가 헬이었는데 Anaconda로 Gunicorn을 설치했다면
anaconda3/envs/가상환경이름/bin/gunicorn --workers 3 --bind 0.0.0.0:8080 프로젝트이름.wsgi:application
그후
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
sudo systemctl status gunicorn.service
해서 초록빛 들어오면 성공이다 !
6. Nginx 설치
sudo apt-get update
sudo apt-get install nginx
service nginx restart
service nginx status
초록빛 들어오면 성공 ㅇㅇ
7. Nginx - Gunicorn - Django 연결설정
vi /etc/nginx/sites-enabled/장고프로젝트이름
역시 저장안되면 +sudo
server {
listen 80;
server_name [IP주소];
charset utf-8;
location / {
include proxy_params;
proxy_pass http://[IP주소]:8000;
}
}
저장후
nginx를 재시작 ...
80포트로 요청을 보내고 8080 번 유니콘 인터페이스에서 장고로 연결되어 요청이 처리된다!
@@@@@ 번외 gunicorn을 선택한 이유
인스타 그램도 Gunicorn을 사용한다.
내가 찾아본거에 따르면..
uwsgi는 무거우나 확장성이 높다!
gunicorn은 가볍다 ! 이정도이다 .
'Python > Django' 카테고리의 다른 글
[Django] Nginx- Gunicorn 삽질 (0) | 2020.07.17 |
---|---|
[Django] Django-Admin css 적용안되는문제 (정적파일이해) (0) | 2020.07.16 |
[Django] ORM (1) | 2020.06.20 |
[Django] Class Based Views (0) | 2020.06.20 |
[Django] Paginator (0) | 2020.06.19 |