반응형
목차
nginx의 프록시를 이용해 요청에 따라 서버 2개로 분배하는 예제
lb Dockerfile(메인서버) 🤗
예제에서는 lb가 메인서버를 뜻함
클라이언트 요청을 제일 먼저 받는 서버
FROM nginx
#vim은 편의상 설치했음, 선택사항임
RUN apt-get update
RUN apt install -y vim
# COPY index.html /usr/share/nginx/html
#(메인서버 호출 시 index.html 없어서 404 페이지 보여서 만들었음)
COPY index.html /etc/nginx/html/index.html
COPY conf/nginx.conf /etc/nginx/conf.d/default.conf
ENTRYPOINT [ "nginx", "-g", "daemon off;"]
lb nginx.conf 😎
#server1 ip(분배될 서버)
#현재 예제에서는 서버 아이피를 직접 적었지만 서버가 많아질 경우를 대비해서 추후엔 gateWay로 적는 걸 권장
upstream server1 {
#gateWay는 server 172.17.0.1:8001;
server 172.17.0.2:80;
}
#server2 ip(분배될 서버)
upstream server2 {
#gateWay는 server 172.17.0.1:8002;
server 172.17.0.3:80;
}
server {
listen 80;
server_name localhost;
#server1 /server1로 요청이 들어오면 위에 설정한 upstream {server1}로
location /server1 {
proxy_pass http://server1/;
}
#server1 /server2로 요청이 들어오면 upstream {server2}로
location /server2 {
proxy_pass http://server2/;
}
}
lb index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>Welcome Nginx!!!!!!!!!!</h1>
</body>
</html>
server1,2 Dockerfile 🙂
FROM nginx
COPY webapp /usr/share/nginx/html
ENTRYPOINT [ "nginx", "-g", "daemon off;"]
server 1,2 index.html 🙄
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 여기만 Server 1, 2로 다름 -->
<h1>Welcome Nginx Server 1</h1>
</body>
</html>
명령어 🤑
#3개 한번에 이미지화
#현재 경로: C:\Users\사용자명\DOCKER_LAB\ex04
docker build -t server1 ./server1; docker build -t server2 ./server2; docker build -t lb ./lb
#3개 한번에 컨테이너화
docker run -d -p 8001:80 server1; docker run -d -p 8002:80 server2; docker run -d -p 8000:80 lb
개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.
틀린 점 있을 경우 댓글 부탁드립니다.
reference: https://www.youtube.com/watch?v=ZmqSOMlgZPU
반응형
'IT > DevOps' 카테고리의 다른 글
[Docker] Docker Compose [1] (feat. volumes) (45) | 2023.11.05 |
---|---|
[Docker] Docker File [6] (feat. ENV, VOLUME) (44) | 2023.11.05 |
[Docker] Docker File [4] (feat. nginx 설정 복사) (48) | 2023.11.04 |
[Docker] Docker File [3] (feat. Run) (47) | 2023.11.04 |
[Docker] Docker File [2] (feat. Entrypoint, WorkDir) (43) | 2023.11.02 |