로드 밸런싱
로드 밸런싱
LVS(Linux Virtual Server)
구성도
Director 기본 설정
LVS 패키지 설치
yum -y install ipvsadm
IP Forwarding
vi /etc/sysctl.conf
net.ipv4.ip_forward=1 << 내용 추가
[root@localhost ~]# sysctl -p << 잘 들어갔는지 확인
net.ipv4.ip_forward = 1
Virtual IP 설정
ifconfig ens32:1 172.16.0.10 netmask 255.255.255.0
ipvsadm 설정
iptables -F << 방화벽 해제
부하분산 설정
Virtual IP 10 -> RealIP 11) 12) , 80
ipvsadm -A -t 172.16.0.10:80 -s rr << 172.16.0.10:80 으로 들어오는 연결은 rr(Round robin) 이라는 방식으로 부하분산 할것
Virtual IP 10 -> RealIP 11)
ipvsadm -a -t 172.16.0.10:80 -r 172.16.0.11:80
Virtual IP 10 -> RealIP 12)
ipvsadm -a -t 172.16.0.10:80 -r 172.16.0.12:80
RealServer 1: 172.16.0.11, 12] 기본 설정
패키지 설치
yum -y install httpd arptables_jf
httpd 설정
172.16.0.11
[root@localhost ~]# echo 11 > /var/www/html/index.html
[root@localhost ~]# cat /var/www/html/index.html
11
172.16.0.12
[root@localhost ~]# echo 12 > /var/www/html/index.html
[root@localhost ~]# cat /var/www/html/index.html
12
Virtual IP 설정
ifconfig ens32:1 172.16.0.10 netmask 255.255.255.0
arptables_jf 설정
VIP 를 찾는 arp는 차단
arptables -A INPUT -d 172.16.0.10 -j DROP
172.16.0.10 으로 응답시 arp 로 알아낸 172.16.0.10 의 MAC 주소를 172.16.0.11, 12 의 MAC 주소로 대체
arptables -A OUTPUT -s 172.16.0.10 -j mangle --mangle-ip-s 172.16.0.11, 12
확인
172.16.0.10에 접속을 했지만 각각 분산되서 172.16.0.11, 12가 보입니다.
HA Proxy
L4 기반의 L/B 를 제공하는 솔루션
- Port no 를 기반으로 하는 부하분산 을 제공
- L7 기반 동작도 가능
구성도
기본 설정
IP Forwarding
# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 << 내용 추가
# sysctl -p << 확인
net.ipv4.ip_forward = 1
패키지 설치
yum -y install haproxy
iptables -F << 방화벽 해제
HA proxy 설정
vi /etc/haproxy/haproxy.cfg
63 #frontend main *:5000 << 주석
64 frontend main *:80 << 추가
69 #default_backend app << 주석
70 default_backend static << 추가
77 #server static 127.0.0.1:4331 check << 주석
78 server static 192.168.138.11:80 check << 추가
79 server static 192.168.138.12:80 check << 추가
패키지 재시작
VirtualIP 설정
ifconfig ens32:1 172.16.0.10 netmask 255.255.255.0
Web Server 1,2 설정
yum -y install httpd << httpd 설치
iptables -F << 방화벽 해제
확인
댓글남기기