[배포해보기 (8)] Docker Network의 이해 및 구현
웹 프로그래밍

[배포해보기 (8)] Docker Network의 이해 및 구현

728x90
반응형

gunicorn이 설치된 Django container와 Nginx container를 연결할 것이다.

 

Nginx container에서 django container로 요청을 보낼때는 어떻게 보내야하는가? IP Address 로 요청을 보내야할지, DOMAIN으로 요청을 보내야할지 모른다. 이걸 해결해줄 도구가 Docker Network이다. 

 

Docker Network

django container의 container name은 'django_container_gunicorn'

Nginx의 container name은 'nginx' 였다. 

Network안에서는 container name자체가 도메인이된다. 

 

 

 이런식으로 두 컨테이너의 연결을 만들것이다.

 

1. Network 생성

우선 이전에 임시로 만들었던 컨테이너들을 삭제하였다. (portainer 제외) 

> create network

 

name만 설정하여 그대로 deploy한다. (nginx-django 로 하였다.)

 

2. container 생성

port는 nginx에서 먼저 받은다음에 django로 넘겨줄거기 때문에 django container에서 외부포트를 연결시켜줄 필요가 없다.

 

 

network를 앞서만든 네트워크로 설정해준다.

 

> deploy

 

3. nginx.conf create

worker_processes auto;

events {
}

http {
  server {
    listen 80;

    include mime.types;

    location /static/ {
        alias /data/static/;
    }

    location /media/ {
        alias /data/media/;
    }

    location / {
        proxy_pass http://django_container_gunicorn:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }
}

 

4. nginx.conf 파일을 가상서버에 올리기

https://filezilla-project.org/

 

FileZilla - The free FTP solution

Overview Welcome to the homepage of FileZilla®, the free FTP solution. The FileZilla Client not only supports FTP, but also FTP over TLS (FTPS) and SFTP. It is open source software distributed free of charge under the terms of the GNU General Public Licen

filezilla-project.org

1) FileZilla를 활용. 호스트, 사용자명, 비밀번호, 포트:22를 입력해 연결한다. > 받아온 가상서버 안에 파일들이 나타난다.

2) home 폴더로 들어가 새 디렉터리 django_course 생성. 그리고 내부에 왼쪽 로컬에서 만든 nginx.conf 를 django_course에 넣어준다.

 

5. nginx container 생성

> network는 nginx-django 연결.

> Volumes 설정

container :   /etc/nginx/nginx.conf        (bind)

host        : /home/django_course/nginx.conf

 

> deploy

 

728x90
반응형