해당 강의는 ex04 디렉토리에서 진행하였음.

 

1. 디렉토리 및 필요한 파일 생성

  • server1
    • webapp
      • index.html
    • Dockerfile
  • server2
    • webapp
      • index.html
    • Dockerfile
  • lb
    • Dockerfile 
    • conf
      • nginx.conf

Dockerfile (server1, server2 동일)

FROM nginx

COPY ./webapp /usr/share/nginx/html

ENTRYPOINT ["nginx", "-g", "daemon off;"]

 

index.html (server1)

<h1>Welcome nginx Server1</h1>

 

index.html (server2)

<h1>Welcome nginx Server2</h1>

 

 

2. Dockerfile 빌드

ex04 디렉토리에서 진행.

docker build -t server1:1.0 ./server1
docker build -t server2:1.0 ./server2

 

3. Docker 이미지 확인 및 실행

docker images

빌드한 이미지가 제대로 생성되었는지 확인 한다.

 

이미지가 제대로 생성되었으면 아래의 명령어로 실행

docker run -d -p 8081:80 --name nginx-server1 server1:1.0
docker run -d -p 8082:80 --name nginx-server2 server2:1.0

docker ps 및 제대로 실행되었는지 확인하는 부분은 생략!

 

4. 구성하려는 서버 구성도

 

5. 설정파일 생성

lb/conf/nginx.conf 파일을 생성한다.

upstream server1{
                server 172.17.0.3:80;
}

upstream server2{
                server 172.17.0.4:80;
}

server{
        listen 80;
        server_name localhost;

        #여기서 server1은 위의 upstream server1을 의미한다.
        location /server1{
                proxy_pass http://server1/;
        }

        #여기서 server2는 위의 upstream server2를 의미한다.
        location /server2{
                proxy_pass http://server2/;
        }

}

여기서 upstream server1, upstream server2 IP는 docker inspect [CONTAINER ID] 로 확인하여 넣어주어야한다.!!

 

lb용 Dockerfile을 작성한다.

FROM nginx
COPY conf/nginx.conf /etc/nginx/conf.d/default.conf
ENTRYPOINT ["nginx", "-g", "daemon off;"]

 

6. lb 빌드하기

docker build -t lb:1.0 ./lb

 

7. lb 실행하기

docker run -d -p 8080:80 --name nginx-lb lb:1.0

 

8. 로드밸런스 확인하기

192.168.0.3:8080/server1

192.168.0.3:8080/server2 

각각 접속해보고 server1, server2의 index.html 이 뜨면 성공!

 

 

+ Recent posts