장고:도커로 올리기: 두 판 사이의 차이
(새 문서: {{장고}} == 개요 == <br /> == gunicorn == 장고의 runserver 대신 gunicorn을 이용해 서비스를 해야한다. {| class="wikitable" |+ !과정 !설명 |- |runserver 대...) |
(→개요) |
||
(같은 사용자의 중간 판 하나는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
{{장고}} | {{장고}} | ||
== 개요 == | ==개요== | ||
도커. 가상화. 서로 다른 OS나 다른 환경에서 돌아가던 프로그램이 환경이 바뀌면 돌아가지 않곤 한다. 이를 위한 가상화. | |||
가상머신과 다른 점은 하나의 컴퓨터에 자원을 지정할당하는 게 아닌, 호스트와 커널을 공유하는 반가상화라는 것. 간편하고 성능을 잘 끌어들인다는 점에서 경제적이다. | |||
<br /> | <br /> | ||
== gunicorn == | ==gunicorn== | ||
장고의 runserver 대신 gunicorn을 이용해 서비스를 해야한다. | 장고의 runserver 대신 gunicorn을 이용해 서비스를 해야한다. | ||
{| class="wikitable" | {| class="wikitable" | ||
25번째 줄: | 29번째 줄: | ||
|} | |} | ||
== nginx == | ==nginx== | ||
gunicorn을 웹서버에 연결해야 한다. 포트를 통해 nginx에 접속할 순 있지만, 이를 gunicorn과 연결해야 한다. | gunicorn을 웹서버에 연결해야 한다. 포트를 통해 nginx에 접속할 순 있지만, 이를 gunicorn과 연결해야 한다. | ||
=== docker network === | ===docker network=== | ||
지정된 컨테이너 이름을 토대로 컨테이너들끼리 내용을 주고받을 수 있는 기능을 제공한다. | 지정된 컨테이너 이름을 토대로 컨테이너들끼리 내용을 주고받을 수 있는 기능을 제공한다. | ||
37번째 줄: | 41번째 줄: | ||
목표는 nginx를 gunicorn에 연결하는 것. (작정하고장고에선 네트워크를 먼저 만들고 진행한다.)네트워크가 만들어진 상태에서 컨테이너를 만들면 하단의 네트워크 탭에서 네트워크를 지정할 수 있다.(컨테이너를 만들고 난 후에도 할 수 있는 거 아닌감;;?) | 목표는 nginx를 gunicorn에 연결하는 것. (작정하고장고에선 네트워크를 먼저 만들고 진행한다.)네트워크가 만들어진 상태에서 컨테이너를 만들면 하단의 네트워크 탭에서 네트워크를 지정할 수 있다.(컨테이너를 만들고 난 후에도 할 수 있는 거 아닌감;;?) | ||
=== 설정파일 만들기 === | ===설정파일 만들기=== | ||
다음과 같이 설정한다.<syntaxhighlight> | 다음과 같이 설정한다.<syntaxhighlight> | ||
worker_processes auto; | worker_processes auto; | ||
75번째 줄: | 79번째 줄: | ||
<br /> | <br /> | ||
== 정적파일 구동하기 == | ==정적파일 구동하기== | ||
파이썬 이미지 파일에 RUN python manage.py collectstatic 을 넣어주고... | 파이썬 이미지 파일에 RUN python manage.py collectstatic 을 넣어주고... |
2021년 2월 15일 (월) 22:43 기준 최신판
장고! 웹 프레임워크! 틀:장고
개요[편집 | 원본 편집]
도커. 가상화. 서로 다른 OS나 다른 환경에서 돌아가던 프로그램이 환경이 바뀌면 돌아가지 않곤 한다. 이를 위한 가상화.
가상머신과 다른 점은 하나의 컴퓨터에 자원을 지정할당하는 게 아닌, 호스트와 커널을 공유하는 반가상화라는 것. 간편하고 성능을 잘 끌어들인다는 점에서 경제적이다.
gunicorn[편집 | 원본 편집]
장고의 runserver 대신 gunicorn을 이용해 서비스를 해야한다.
과정 | 설명 |
---|---|
runserver 대신 gunicorn 사용 | CMD 부분의 runserver를 바꿔준다.
|
이미지를 만들기 위한 기본 설치 | CMD라인 이전에 RUN pip install gunicorn 을 추가해준다.
|
이미지 만들기 | 이 파일로 이미지를 만든다. |
컨테이너 만들기 | 해당 포트로 접속하면 static이 빠진 웹페이지가 뜨면 정상. |
nginx[편집 | 원본 편집]
gunicorn을 웹서버에 연결해야 한다. 포트를 통해 nginx에 접속할 순 있지만, 이를 gunicorn과 연결해야 한다.
docker network[편집 | 원본 편집]
지정된 컨테이너 이름을 토대로 컨테이너들끼리 내용을 주고받을 수 있는 기능을 제공한다.
http://컨테이너이름:포트번호 로 지정하여 내용을 보내면 내용이 해당 컨테이너로 전달된다.
포테이너 좌측 메뉴 중, Network로 들어가면 네트워크를 만들 수 있다. 대충 생성하면 된다.
목표는 nginx를 gunicorn에 연결하는 것. (작정하고장고에선 네트워크를 먼저 만들고 진행한다.)네트워크가 만들어진 상태에서 컨테이너를 만들면 하단의 네트워크 탭에서 네트워크를 지정할 수 있다.(컨테이너를 만들고 난 후에도 할 수 있는 거 아닌감;;?)
설정파일 만들기[편집 | 원본 편집]
다음과 같이 설정한다.
worker_processes auto;
events {}
http {
server {
listen 80;
server_name example.org;
access_log /var/log/nginx/example.log;
location / {
proxy_pass http://컨테이너 이름:연결한 포트(일반적으로 8000);
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
proxy_pass 부분만 변경한다. 파일명.conf
로 저장.
이 설정파일을 FTP를 이용해 아무 디렉터리에 옮겨둔다.
이후 컨테이너 작성 시작.
과정 | 설명 |
---|---|
볼륨 설정 | volume mapping에서 container은 /etc/nginx/nginx.conf 를 넣어주고, host에선 위에서 만든 파일경로를 넣어준다.(컨테이너 안에 있는 파일과 host에서의 파일을 연결하는 것.) |
네트워크 설정 | 포트번호 알아서 지정, 네트워크를 지정한다. |
설정이 끝났으면 deploy.
해당 ip의 해당 포트로 들어가면 static이 빠진 웹페이지가 보인다.
정적파일 구동하기[편집 | 원본 편집]
파이썬 이미지 파일에 RUN python manage.py collectstatic 을 넣어주고...