😎다룰 내용
도커 파일로 NGINX를 로비서버로 설정하는 방법에 대해서 알아보자.( 단일 진입 경로 서버 )
NGINX를 사용해서 로비 서버를 구성하는 실습을 진행하기 위해서 아래와 가이 프로젝트의 폴더 구조를 구성했다.
각 서버 실행하기
server1과 server2 폴더가 있고
각 폴더 하에 있는 도커 파일은 아래와 같다.
모두 nginx 서버 내용을 담은 도커 파일이다.
FROM nginx
COPY webapp /usr/share/nginx/html
ENTRYPOINT ["nginx", "-g", "daemon off;"]
그리고 각 폴더의 webapp에 있는 index.html은 아래와 같이 작성되었다.
✅ server1 폴더의 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>nginx server1</h1>
</body>
</html>
✅ server2 폴더의 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>nginx server2</h1>
</body>
</html>
이제 각 폴더에 따른 build를 실행한다.
빌드 후에 각 이미지가 만들어진 상태를 확인할 수 있다.
이제 각 이미지를 8080 port와 8070port로 실행하고 접속하여 확인해보면 잘 작동함을 확인할 수 있다.
server 1 - 8080 port 으로 접근
server 2 - 8070 port 으로 접근
이와 같은 과정을 거쳐서 각 서버가 제대로 실행되고 있다.
그리고 이제 nginx를 가지고 LB 서버를 만들려고 한다.
로비 서버 만들기( LB 서버 )
LB서버란 아래의 그림과 같이 각 서버로 진입하기 위한 단일 진입 경로로 작동하는 서버이다.
(프록시 서버라고도 부른다 - 프록시 = 대행자
그리고 이에 대한 기능을 LB 폴더에서 진행할 것이다.
그리고 conf 파일에서 다음과 같은 구성 파일을 작성하였다.
먼저 upstream 변수는 server 설정에서 NGINX가 받아들인 요청을 어떤 서버로 흘려보내 줄 것인지 결정할 때 사용된다. 보통 위와 같이 IP와 PORT를 지정해주는 것으로 설정이 끝난다.
여기서 각 IP에 대한 정보는 inspect 명령어를 통해서 살펴볼 수 있다.
아래의 과정을 살펴보면, 컨테이너에 대한 inspect를 실행하고 하단에서 컨테이너에 대한 IP주소를 살펴볼 수 있다.
< docker inspect 컨테이너ID > 명령어를 통한 ip 주소 확인
IP 주소
그리고 서버 설정에서 /server1 url로 요청이 들어오면, upstream에서 지정한 IP주소로 http://+IP주소에 맞춰 할당된다.
이제 해당 설정을 컨테이너에 넣기 위한 docker file을 아래와 같이 작성하고 build 후에 컨테이너로 실행한다.
FROM nginx
COPY conf/nginx.conf /etc/nginx/conf.d/default.conf
ENTRYPOINT ["nginx", "-g", "daemon off;"]
이제 각 서버에 직접 접근하는 방식이 아닌 lb 서버에 접근하여 url에 따른 각 서버로 접근할 수 있게 되었다.
'Docker > Docker 입문' 카테고리의 다른 글
도커 입문 18 - 도커 compose 시작 (0) | 2024.12.28 |
---|---|
도커 입문 17 - 도커file ( mysql 환경 변수와 데이터 저장 ) (0) | 2024.12.27 |
도커 입문 15 - 도커file (Nginx 설정 수정/복사하기, find/copy 명령어) (0) | 2024.12.25 |
도커 입문 14 - 도커file (Nginx 분석, inspect 명령어) (0) | 2024.12.25 |
도커 입문 13 - 도커file (RUN, COPY) (0) | 2024.12.22 |
댓글