
Stack Overflow 네트워크에서 영감을 받아 이제는 HAProxy에 푹 빠져 직접 사용해 보려고 합니다.
현재 각 HAProxy 상자에는 두 개의 네트워크 카드가 있습니다(음, 두 개로 구성되어 있으며 최대 4개를 가질 수 있으며 상자 간 관리를 위해 자체 카드가 필요한지 확실하지 않습니다).
두 머신 모두에서 백엔드 1(eth1)은 웹 서버에 연결된 스위치로 이동하는 개인 IP이고, 전면 1(eth0)은 직접 라우팅되는 공용 인터넷 IP를 갖습니다.
또한 eth0:0
세 번째 공용 IP 주소를 가진 eth0이라는 추가 가상 IP를 만들었습니다.
뒤에 있는 여러 웹 서버 간의 로드 밸런싱을 위해 이를 사용하는 방법을 알아냈지만 두 HAProxy 상자 간의 로드 밸런싱에 실패했습니다. 가상 IP를 놓고 싸우는 것처럼 보이지만 이는 그렇지 않은 것 같습니다. 스마트한 솔루션이 되세요.
이제 가상 공유 IP 주소를 사용하면 이 솔루션이 작동하는 것처럼 보이고 최대 가동 시간을 제공하는 것처럼 보입니다. 그러나 이것이 올바른 방법입니까, 아니면 더 똑똑한 방법이 있습니까?
keepalived 등 다른 리눅스 패키지도 찾아보았으나, 현재 리눅스(서버)를 사용한지 일주일밖에 되지 않아 이해의 한계에 이르렀습니다.
이전에 이 작업을 수행한 사람이 있습니까? 가동 시간을 최대화하기 위해 조언을 해주실 수 있습니까?
답변1
두 개의 서로 다른 haproxy 간의 트래픽 부하를 분산하려면 앞에 다른 부하 분산 장치가 있어야 하며 이는 유용하지 않습니다.
더 높은 가용성을 원할 경우 이미 두 개의 haproxy를 사용하여 이를 확보했고, 연결 유지 또는 하트비트를 통해 그 중 하나에 VIP가 할당되었습니다. 일반적으로 이는 HA 및 로드 밸런싱 문제에 대한 솔루션입니다.
동시에 두 개의 haproxy를 사용하는 한 가지 방법을 생각할 수 있습니다. 각 haproxy 서버에 하나의 VIP를 할당하도록 연결 유지를 구성할 수 있습니다. 로드 밸런싱은 DNS를 통해 수행할 수 있습니다. DNS 이름은 두 개의 VIP로 확인되어야 합니다. 하나의 haproxy가 실패하면 다른 노드는 두 개의 VIP를 보유하고 모든 트래픽을 수신합니다.