본문 바로가기
클라우드 기초/도커&컨테이너

[nginx + httpd + haproxy] 컨테이너로 설정하기

by 라라쇼퍼 2023. 6. 18.
반응형

rocky 9 기준

 

<오늘의 실습>
rocky9 1번 가상머신에서는 nginx1, nginx2, httpd1, httpd2  4대의 컨테이너를 생성합니다.
rocky9 2번 가상머신에서는 haproxy를 설치하고(컨테이너 아님) haproxy를 가상머신 1번의 4대의 웹서버 컨테이너의 로드 밸런스로 설정합니다. 

그렇다면 전체 그림은 아래와 같이 정리가 됩니다. 


nginx 및 httpd 시작페이지 변경하기

 

1. httpd  index.html 수정하기

 

docker run -itd --name h1 httpd

docker exec -it h1 /bin/bash


데몬을 실행하는 도커에는 vi 편집기가 없기 때문에 아래와 같이 index.html 파일을 수정합니다.

cat > htdocs/index.html << END
<html>
<body>
<h1>
KSM-docker-http1
</h1>
</body>
</html>
END 

내부에서 변환 잘 되었는지 확인하는 방법

curl 172.17.0.3  (도커 ip 주소)

2. nginx   index.html 수정하기

 

방식의 httpd index.html 파일 수정한 것과 동일합니다. 

 다만, index.html 파일 위치는 

/usr/share/nginx/html/index.html  입니다. 

 

위치를 모르겠을 땐 nignx 도커의 /bin/bash 로 진입해서 

find / -name index.html 로 찾아보면  경로가 나옵니다. 


haproxy 설정하기

 

Haproxy 설정에 들어가서

 

vi /etc/haproxy/haproxy.cfg

프론트엔드와 백엔드의 포트 번호 및 ip 주소를 변경합니다.

 

아래 그림과 같이 만약 default_backend 에 이름을 ksm 으로 변경했다면, backend 부분에도 동일한 이름으로 변경해주어야 합니다. 

 

haproxy를 가동시켜줍니다.

systemctl start haproxy

 

haproxy는 도커와 상관이 없으므로 방화벽을 열어주어야 합니다. 

firewall-cmd --add-port=80/tcp

 

부하 분산이 라운드 로빈(round robin) 방식이므로

이렇게 순차적으로 백엔드로 연결된 웹서버에 접속이 됨을 확인할 수 있습니다. 

반응형

댓글