Haproxy + KeepAlived 부하 균형
9557 단어 haproxykeepalived부하 균형
HAProxy 는 LVS 보다 사용 이 훨씬 간단 하고 기능 적 으로 도 풍부 하 다.현재 HAProxy 는 두 가지 주요 프 록 시 모드 를 지원 합 니 다. 'tcp' 즉 4 층 (대부분 메 일 서버, 내부 프로 토 콜 통신 서버 등에 사용) 과 7 층 (HTTP) 입 니 다.4 층 모드 에서 HAProxy 는 클 라 이언 트 와 서버 사이 에서 만 양 방향 트 래 픽 을 전송 합 니 다.7 층 모드 에서 HAProxy 는 프로 토 콜 을 분석 하고 허용, 거부, 교환, 추가, 수정 또는 삭제 요청 (request) 또는 응답 (response) 에서 지정 한 내용 을 통 해 프로 토 콜 을 제어 할 수 있 으 며 이러한 작업 은 특정 규칙 에 기반 해 야 합 니 다.
제 가 지금 HAProxy 를 사용 하 는 것 은 주로 다음 과 같은 장점 이 있 기 때 문 입 니 다. 여기 서 정리 하 겠 습 니 다.
1. 무료 오픈 소스, 안정성 도 매우 좋 습 니 다. 이것 은 제 가 만 든 작은 프로젝트 를 통 해 알 수 있 듯 이 Haproxy 만 잘 달 렸 고 안정성 은 LVS 와 비교 할 수 있 습 니 다.
2. 공식 문서 에 따 르 면 HAProxy 는 Myricom 's 10GbE NICs (Myri - 10G PCI - Express) 를 사용 하여 10Gbps - New benchmark of HAProxy at 10Gbps 를 가득 뛸 수 있 습 니 다. 이것 은 소프트웨어 급 부하 균형 으로서 놀 라 운 것 입 니 다.
3. HAProxy 는 MySQL, 메 일 또는 다른 비 웹 부하 균형 으로 사용 할 수 있 습 니 다. 저 희 는 MySQL (읽 기) 부하 균형 으로 자주 사용 합 니 다.
4. 강력 한 서버 상 태 를 감시 하 는 페이지 를 가지 고 실제 환경 에서 우 리 는 Nagios 와 결합 하여 메 일이 나 문자 경 보 를 하 는데 이것 도 제 가 이 를 매우 좋아 하 는 이유 중 하나 입 니 다.
5. HAProxy 는 가상 호스트 를 지원 합 니 다.
1. 실험 환경
:CentOS release 5.9 (Final) x86 32
HAProxy :1.4.8
Keepalived :1.2.4
MASTER_IP:192.168.207.130
BACKUP_IP:192.168.207.131
VIP:192.168.207.141
WEB_1:192.168.207.129 80
WEB_2:192.168.207.130 8080
WEB_3:192.168.207.131 8080
iptables 랑 selinux 다 꺼.
2. Haproxy 설치
cd /usr/local/src
mkdir haproxy
cd haproxy
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
tar xf haproxy-1.4.8.tar.gz
cd haproxy-1.4.8
make TARGET=linux26;make install
# make TARGET=linux26 --prefix=/usr/local/haproxy, haproxy
haproxy 프로필 을 작성 합 니 다. 주종 은 모두 같 습 니 다. 이 프로필 을 사용 합 니 다.
useradd haproxy
vi /etc/haproxy.cfg
내용 은 다음 과 같다.
global
log 127.0.0.1 local0 #
maxconn 65535
user haproxy
group haproxy
daemon #
nbproc 8 #haproxy
pidfile /tmp/haproxy.pid
defaults
log 127.0.0.1 local3
mode http
option httplog
option httpclose
option dontlognull
option forwardfor
option redispatch
retries 2
maxconn 65535
balance roundrobin # , roundrobin ,source
stats uri /web-status # url , , http://ip VIP/web-status
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen web_vip 0.0.0.0:80 # VIP ,keepalived , , keepalived , VIP, , 0.0.0.0
mode http
option httplog
log global
option httpchk HEAD /index.html HTTP/1.0 # , web index.html , , , 129:80,130:8080,131:8080 , ,haproxy web 。
server web1 192.168.207.129:80 weight 5 check inter 2000 rise 2 fall 3
server web2 192.168.207.130:8080 weight 5 check inter 2000 rise 2 fall 3
server web3 192.168.207.131:8080 weight 5 check inter 2000 rise 2 fall 3
이것 좀 말씀 해 주세요. haproxy 설정 인 자 를 모 르 시 면 도착 할 수 있 습 니 다.http://cbonte.github.io/haproxy-dconv/configuration-1.4.html여기, 이곳
키 워드 를 검색 해 보면 설명 이 있 습 니 다. 아주 편리 합 니 다. 영어 일 뿐 입 니 다. 네, 알 아서 하 세 요.
여기 서 말씀 드 리자 면 HAProxy 의 알고리즘 도 점점 많아 지고 있 습 니 다. 구체 적 으로 다음 과 같은 8 가지 가 있 습 니 다.
① roundrobin 은 간단 한 폴 링 을 나타 낸다. 이것 은 말 할 것 도 없 이 부하 균형 이 기본적으로 갖 추어 진 것 이다.
② static - rr 는 가중치 에 따라 관심 을 가 지 는 것 을 권장 합 니 다.
③ leastconn 은 최소 접속 자가 먼저 처리 하고 관심 을 가 지 는 것 을 권장 합 니 다.
④ source, 요청 소스 IP 에 따라 이것 과 Nginx 의 IPhash 메커니즘 은 유사 합 니 다. 우 리 는 이 를 session 문 제 를 해결 하 는 방법 으로 삼 아 관심 을 가 지 는 것 을 권장 합 니 다.
⑤ ri, 요청 에 따 른 URI 표시;
⑥rl_param, 요청 한 URL 인자 'balance urlparam' requires an URL parameter name;
⑦ hdr (name) 는 HTTP 요청 헤더 에 따라 매번 HTTP 요청 을 잠 그 는 것 을 의미 합 니 다.
⑨ rdp - cookie (name) 는 쿠키 (name) 에 따라 TCP 요청 을 잠 그 고 해시 가 요청 할 때마다
웹 서버 가 모두 열 린 상태 에서 실행
haproxy -f /etc/haproxy.cfg
이것 은 이미 haproxy + 3 개의 웹 부하 균형 모드 입 니 다.
브 라 우 저 에 입력 가능http://haproxy_ip 주소 로 haproxy 의 운행 방식 을 느껴 보 세 요.
url 에 / web - status 를 더 하면 관리 인터페이스 에 접근 할 수 있 습 니 다.
3. keepalived 설치
wget http://www.keepalived.org/software/keepalived-1.2.4.tar.gz
tar -zxvf keepalived-1.2.4.tar.gz
cd keepalived-1.2.4
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir -p /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
chmod +x /etc/init.d/keepalived
keepalived 프로필 쓰기
vi /etc/keepalived/keepalived.conf
내용 은 다음 과 같다.
# Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/etc/keepalived/checkHaproxy.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER # keepalived BACKUP
interface eth0
virtual_router_id 51
priority 104 # keepalived 100 , , 0~255,
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
192.168.207.141
}
}
몇 가지 주의 점:
1. / etc / keepalived / checkHaproxy. sh 는 실행 가능 한 권한 을 추가 해 야 합 니 다. 예 를 들 어 chmod + x / etc / keepalived / checkHaproxy. sh
2. 설정 파일 을 정규 로 쓰 십시오. 괄호 {}, 앞의 키워드 와 빈 칸 을 남 겨 두 십시오.
/ etc / keepalived / checkHaproxy. sh 스 크 립 트 를 작성 합 니 다. 다음 과 같 습 니 다.
#!/bin/bash
A=`ps -C haproxy --no-header | wc -l`
if [ $A -eq 0 ];then
/usr/local/sbin/haproxy -f /etc/haproxy.cfg
echo "Haproxy start"
sleep 3
if [ `ps -C haproxy --no-header | wc -l` -eq 0 ];then
/etc/init.d/keepalived stop
echo "keepalived stop"
fi
fi
haproxy 가 시작 되 었 는 지 확인 하고 haproxy 프로 세 스 를 먼저 시작 하지 않 으 면 keepalived 프로 세 스 를 닫 습 니 다. 그 쪽 은 keepalived 에서 바로 메 인 프로 세 스 를 프로 그래 밍 하여 계속 작업 합 니 다.
이 각본 은 스스로 쓸 수 있어, 그래도 매우 간단 하 다.
4. 서비스 열기, 검증
사실 웹 서비스 3 개 를 켜 는 거 예요.
keepalived 서버 두 개 를 열 고 keepalived 는 haproxy 서 비 스 를 자동 으로 엽 니 다. / etc / keepalived / checkHaproxy. sh 가 있 기 때 문 입 니까? 하하
모두 열 고 방문http://192.168.207.141웹 서버 3 개 를 돌아 가면 서 방문 할 수 있 습 니 다.
그래서 서비스 가 열 리 면 주 keepalived 에서 실행 할 수 있 습 니 다.
ip addr
eth 0 에 VIP 가상 주소 가 하나 더 있 습 니 다.
keepalived 의 역할 을 알 아 보기 위해 서.
메 인 서버 의 keepalived 를 꺼 주세요.
/etc/init.d/keepalived stop
keepalived 의 / var / log / messages 로 그 를 보면 볼 수 있 습 니 다.
Apr 18 12:20:23 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE
Apr 18 12:20:24 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE
Apr 18 12:20:24 localhost Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs.
Apr 18 12:20:24 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.207.141
Apr 18 12:20:24 localhost Keepalived_vrrp: Netlink reflector reports IP 192.168.207.141 added
Apr 18 12:20:24 localhost Keepalived_healthcheckers: Netlink reflector reports IP 192.168.207.141 added
Apr 18 12:20:24 localhost avahi-daemon[4208]: Registering new address record for 192.168.207.141 on eth0.
방문http://192.168.207.141아니면 정상 방문?
메 인 keepalived 서 비 스 를 열 면 볼 수 있 습 니 다.
Apr 18 12:20:29 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.207.141
Apr 18 12:21:07 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Received higher prio advert
Apr 18 12:21:07 localhost Keepalived_vrrp: VRRP_Instance(VI_1) Entering BACKUP STATE
Apr 18 12:21:07 localhost Keepalived_vrrp: VRRP_Instance(VI_1) removing protocol VIPs.
Apr 18 12:21:07 localhost Keepalived_vrrp: Netlink reflector reports IP 192.168.207.141 removed
Apr 18 12:21:07 localhost Keepalived_healthcheckers: Netlink reflector reports IP 192.168.207.141 removed
Apr 18 12:21:07 localhost avahi-daemon[4208]: Withdrawing address record for 192.168.207.141 on eth0.
여기에 haproxy 관리 페이지 의 그림 과 작은 실험 을 첨부 합 니 다.
방문 하 다.http://192.168.207.141/web-status화면
백 엔 드 를 볼 수 있 는 3 개의 웹 서버 가 모두 좋 습 니 다.
이때 나 는 웹 3 의 웹 서 비 스 를 껐 다. 나 는 apache 를 사용 하기 때문에 service httpd stop 을 직접 실행 했다.
그리고 볼 수 있어 요.
알 겠 습 니 다. 그리고 방문 하 겠 습 니 다.http://192.168.207.141웹 의 index. html 페이지 도 나타 나 지 않 습 니 다.
ok, 끝 났 습 니 다. 친 측 실천, 성공 을 기원 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HAProxy로 HA화된 Elasticsearch 클러스터 구축이 기사는 의 18 일째입니다. 실험실에있는 ESXi에 Elasticsearch 클러스터를 구축했습니다. 선생님으로부터 중복을 고려한 구축을 제안되었으므로, SPOF의 배제를 목표로 했습니다. 설정 파일은 다음과 같...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.