Load Balancing
– 하나의 서버에 서비스 트래픽이 많을 때 여러개의 서버로 나누어 서비스를 함으로 써 서버의 로드율 증가, 부하량,
속도 저하, 등을 개선하는 것
시나리오
- HaProxy를 이용한 Web Load Balanace 구현
host | CentOS1 |
CentOS2 | CentOS3 |
W7-1 |
IP |
1.0.0.21 |
1.0.0.22 |
1.0.0.23 |
1.0.0.101 |
SM |
255.255.255.0 |
|||
DG |
1.0.0.252 |
|||
DNS |
설정에 따라 |
|||
Roles | Load Balance, DNS | Web1 | Web2 | Tester(Client) |
원리
1) 클라이언트가 www.babo.com 에 접속을 시도한다
2) DNS인 1.0.0.21에 www.babo.com의 IP를 1.0.0.21로 기록해두었기 때문에 1.0.0.21로 이동 된다
3) 1.0.0.21 PC에는 haproxy가 자신의 APP목록에 있는 IP주소로 RR방식으로 맵핑한다
과정
1) CentOs6-1
a) 설치
- haproxy와 dns를 설치한다
b) 방화벽 설정
80 : Client들이 haproxy에게 서비스를 요청할 포트이다
53 : dns에 사용될 포트
4331 : haproxy에 사용될 포트
- iptables를 재시작한다
c) dns 설정
- /etc/named.rfc1912.zone 파일에 새영역에대한 레코드를 추가한다
- /var/named에 영역파일을 생성한다(named.localhost를 복사하여 생성한뒤 편집하면 편하다)
영역 파일에 다음과 같이 입력한다
www.babo.com , babo.com 에 대한 ip를 haproxy서버가 구현되어있는 서버로 향하게 한다
named 디렉토리 및 이하 파일들의 권한을 755로 설정
d) haproxy 설정
- /etc/haproxy/haproxy.cfg 파일을 편집한다.
Connect 지점 설정
- 사용자들이 접속할 포트를 80로 향하게 한다
Backend Web 설정
- 사용자들에게 제공할 어플리케이션의 주소와 포트를 적는다
- backend app 섹션의 balance roundrobin 줄 위에 위와 같은 코드를 추가하면
5초당 1번씩 health check를 자동으로 하게 되는데 3번실패하면 lb backend에서 삭제하고 2번성공하면
다시 등록되게 할 수 있다.
Backend static file 설정
- html안에 static(css,js) 파일이 위치한 경로는 지정이 되어있으므로
static file들이 있는 서버의 위치만을 지정해주면 된다(port : 80)
- haproxy service를 재시작한다.
2) CentOS6-2
http를 설치한다
index 파일을 생성
80포트를 해제
http 서비스 시작
3) CentOS6-3
CentOS6-2 와 똑같이 구성한다
4) Client
www.babo.com으로 접속한다
새로고침하면 다른 서버로 연결됨을 볼 수 있다.
'Linux > CentOS' 카테고리의 다른 글
CentOS7 - 보조(Slave) DNS 서버 구축 (5) | 2018.12.08 |
---|---|
CentOS7 - DNS서버 구축 (8) | 2018.12.08 |
CentOS7 - NFS서버 구축 (0) | 2018.10.02 |
CentOS7 - Gold Template(골드 템플릿) 만들기 (0) | 2018.09.27 |
CentOS7 - 디스크 관리 - 수정필요 (0) | 2018.09.20 |