2024. 2. 25. 19:20ㆍLinux/CentOS7
프록시란 원래 과거 인터넷이 느리던 시대에
웹 사이트의 정보를,
즉 홈페이지 자체를 가지고 있어서
사용자가 조직 내부에서 외부로 나가지 않고도
프록시를 통해 이용할 수 있었다.
그것을 Forward proxy 라고 한다.
그 반대가 Reverse proxy 인데,
이번엔 반대로 사용가 외부에서
회사의 웹서버에 접근하는데
여러개의 웹서버에 장애가 발생하거나
부하가 발생할 수도 있는 것을
그 사이에서 라우팅을 해주는 것이다.
부하,장애 대응에 탁월하며
Load Balance의 전신이다.
오늘은 HAProxy를 이용해서
웹서버를 Load Balance 해보겠다.
위 사진처럼 구성해보겠다.
(ens의 숫자는 변경될 수도 있다)
그러기 위해서 각 Centos7 네트워크 어댑터를
NAT로 하나씩 추가해주겠다.
Centos 세개의 서버에 모두 추가해주자.
그리고 Centos 1번에 dns를,
Centos2,3번에 web서버를 구성해주자
그리고 1번 서버의 ip를 확인해보자
확인 해보면 이전과 다르게 ens34라는 IP가 하나 더 추가된 것을 볼 수 있다.
IP를 설정하지 않았는데
192... IP가 추가 된 것은 VM웨어에서 DHCP 설정을 꺼두지 않아서 그런 것이다.
VM웨어의 네트워크 설정을 확인하자
VMnet1 의 IP도 같이 바꿔주자
VM웨어의 IP를 변경하면
반드시 자동으로 바뀐
ncpa.cpl의 IP를 바꿔주자
172.16.0.1은 우리가 사용해야하니
254로 바꿨다.
(Host only 라서 게이트 웨이가 필요없어서 254값을 부여해도 상관없다)
이제 Centos의 IP도 바꿔줄 것이다.
하지만 ens34라는 파일은 존재하지 않는걸 볼 수 있다.
이미 존재하는 ens33 파일을 그대로 복사해
ens34파일로 만들어주고
vi 편집기로 확인하자
복사한 파일을 34에 맞게 바꿔주자
Host only에게 필요 없는 DNS,GATEWAY 값도 지워줬다.
systemctl restart network 명령어로
네트워크 재시작 후 IP를 확인하자
ens34의 값이 바뀐 걸 볼 수 있다.
이제 Centos 2,3번째의 IP도 변경해주자
이전과 똑같이 DHCP가 켜졌을때 부여된 IP를 가지고 있다.
이전과 같은 과정으로 IP를 바꿔주면
hostonly로 사용하는 이상 ens33은 필요하지 않다.
ifdown ens33 으로 불필요한
인터페이스를 끌 수 있는데,
꺼버리면 xshall의 연결도 끊겨버린다.
등록정보의 호스트 IP를 172~~ 로 바꿔주면 된다.
IP를 바꾸고 인터페이스를 꺼주면
위와 같이 표시된다!
2번, 3번 서버에 웹서버를 간략하게 만들어주고
httpd port 개방 및 실행 해주자
끝났다면
1번 서버에서 dns 설정을 진행하자
설정이 완료 됐다면 포트 개방후 실행해주자
이렇게 설정을 끝내면 문제가 생긴다!
위 사진을 보면 user들은 load balancer를 통해서 웹서버에 접속해야 하는데
지금 상태로는 그저centos7-1의 DNS에서
웹서버 주소를 받아서 직접 접속하게 되기 때문이다.
그것을 변경하기 전에 HAProxy를 설치해주자
설정 파일은 /etc/haproxy/haproxy.cfg 경로에 있다.
프론트엔드 설정 부분의 포트가 5000으로 되어 있는데
이를 http의 80으로 변경해주자!
그리고 백엔드 app에서 우리의 http 서버 갯수 만큼만 설정을 변경해주자(나머진 주석)
이렇게 설정하고 나면
frontend main :80으로 접속한 사용자들을
backend app 의 ip로 라우팅 해준다는 걸 알 수 있어야 한다.
systemctl start haproxy로 실행시켜주자
(80번tcp는 당연히 개방 되어 있어야 한다!)
실행까지 끝났다면 이제 사용자들이
DNS에서 웹서버 IP를 가져가지 못하고
Load Balancer를 통할 수 있게 바꿔주자
위처럼 DNS가 Load Balancer를 먼저 거치게 설정해주자!
설정을 바꿨담면 이제 읽기 권한 부여와
DNS를 재시작 해주면 된다.
이제 윈도우에서 웹서버로 접속해보자,
이번 실습에는 dhcp를 서비스 하지 않기에
IP는 임시로 수동설정 해주자!
1.0.0.101, 1.0.0.201
수동 설정후 nslookup으로 확인까지 마치면 웹서버에 접속해보자
접속 후에 새로고침을 계속 클릭해보면
웹서버가 2,3번이 계속해서 바뀌는 것을 볼 수 있다.
haproxy에 의해서 현재 부하 분산과
라우팅이 정상적으로 이뤄졌다는 것이다!
이상으로 haproxy에 대해서 알아보았다.
'Linux > CentOS7' 카테고리의 다른 글
Linux 25 . MySql, php, wordpress 구성 (0) | 2024.02.27 |
---|---|
Linux 24 . MySql (0) | 2024.02.26 |
Linux 22 .quota (0) | 2024.02.22 |
Linux 21 . at, cron (0) | 2024.02.20 |
Linux 20 . NFS 서비스 (0) | 2024.02.19 |