keepalived + nginx 높 은 사용 가능 및 부하 균형 클 러 스 터 구축
머리말
생산 환경의 수요 로 인해 현 재 는 전단 이 nginx 인 HA 양 방향 상호 준비, 백 엔 드 가 nginx 대리 인 load balance 부하 균형 클 러 스 터 를 구축 해 야 합 니 다.nginx 프로 세 스 는 Master + Slave (worker) 다 중 프로 세 스 모델 을 기반 으로 매우 안정 적 인 하위 프로 세 스 관리 기능 을 가지 고 있 습 니 다.Master 프로 세 스 할당 모드 에서 Master 프로 세 스 는 업무 처 리 를 하지 않 고 작업 만 배포 하여 Master 프로 세 스 의 생존 이 높 고 신뢰성 이 높 습 니 다. Slave (worker) 프로 세 스 의 모든 업무 신 호 는 주 프로 세 스에 서 보 냅 니 다. Slave (worker) 프로 세 스 의 모든 시간 초과 작업 은 Master 에 의 해 중단 되 고 비 차단 식 작업 모델 에 속 합 니 다.Keepalived 는 Linux 아래 에서 VRRP 백업 루트 를 실현 하 는 신뢰성 높 은 실행 부품 입 니 다.Keepalived 를 기반 으로 한 서비스 모델 은 메 인 서버 와 백업 서버 가 고장 났 을 때 IP 가 순식간에 틈새 없 이 연결 되 는 것 을 진정 으로 실현 할 수 있다.
이 구조 에서 고려 해 야 할 문제 1) Master 가 끊 지 않 으 면 Master 가 VIP 를 차지 하고 nginx 가 Master 에서 실 행 됩 니 다. 2) Master 가 끊 으 면 backup 이 VIP 를 선점 하고 backup 에서 nginx 서 비 스 를 실행 합 니 다. 3) master 서버 의 nginx 서비스 가 끊 기 면 vip 자원 이 backup 서버 로 전 이 됩 니 다. 4) 백 엔 드 서버 의 건강 상 태 를 검사 하 는 Master 와 Backup 양쪽 에서 nginx 서 비 스 를 시작 합 니 다.Master 든 Backup 이 든 그 중의 keepalived 서비스 가 멈 추 면 vip 는 keepalived 서비스 가 있 는 노드 로 이동 합 니 다. nginx 서 비 스 를 끊 으 려 면 vip 도 다른 노드 로 이동 하려 면 스 크 립 트 나 설정 파일 에서 셸 명령 으로 제어 해 야 합 니 다.
아래 의 실험 과정 은 어렵 고 쉬 우 며 착수 하기 쉽 고 조작 하기 쉽다.
1. 전기 환경 준비
1. 설치
[root@apache1 ~]# yum install -y httpd
2. 테스트 페이지 파일 만 들 기
echo "this is apache1" >/var/www/html/
3. 서비스 시작
service httpd start
apache2:
1. 설치
yum -y install httpd
2. 테스트 페이지 파일 만 들 기
echo "this is apache2" >/var/www/html/
3. 서비스 시작
service httpd start
yum -y install gcc gcc+ gcc-c++
yum install popt-devel opensslopenssl-devel libssl-dev libnl-devel popt-devel
yum install -y net-_64net-snmp-_64
2. nginx 설치
yum install -y nginx
3. nginx 설정 파일 수정
yum install -y nginx
사용자 정의 프로필 만 들 기
mkdir /etc/nginx//extra/
vim /etc/nginx//extra/
4. nginx 시작
service nginx start
이 때 브 라 우 저 에서 테스트 를 하고 IP 를 입력 할 수 있 습 니 다.
새로 고침
이 nginx 는 이미 설정 에 성공 하 였 으 며, 다른 기계 에서 같은 방식 으로 nginx 를 설정 하 였 으 며, 여 기 는 더 이상 군말 하지 않 습 니 다.
이상 프로필 의 내용 은 드 물 지만 중요 한 부분 이 므 로 나중에 사용 할 기능 이 점점 추 가 됩 니 다.
2. keepalived 프로필 수정
vim/etc/keepalived/
! Configuration File for keepalived
global_defs {
notification_email {
yangry@
}
notification_email_fromyangry@
smtp_server
smtp_connect_timeout 30
router_id LVS_MASTER1 #
keepalived ,
}
vrrp_script chk_http_port {
script "/usr/local/keepalived/"####
nginx
interval 2
weight 2
}
vrrp_instance VI_2 { #vrrp
stateMASTER #MASTER/BACKUP
interface eth1 ####HA
virtual_router_id 51 #
, , VRRP ,master backup
priority100 #
, 100, 100
advert_int1 #
authentication{ #
,mater backup
auth_type PASS ###
auth_pass 1111 #
}
track_script {
chk_http_port ###
}
virtual_ipaddress {
dev eth1 label eth1:0 ###########
ip
}
}
3. nginx 검 측 스 크 립 트 작성
vim /usr/local/keepalived/
if [ `ps -C nginx --no-header |wc -l` -eq 0];then
killall keepalived
fi
실행 가능 한 권한 을 주 셔 야 돼 요.
chmod +x /usr/local/keepalived/
다른 backup 기기 에서 같은 조작 을 합 니 다. / etc / keepalived / 수정 할 부분 은 다음 과 같 습 니 다.
state BACKUP
priority 99 (master 보다 작 아야 합 니 다)
ifconfig eth1:0 up
그리고 보면 IP 가 두 개 있 을 거 예요.
service keepalived restart
로 그 를 보면 서버 두 대 를 볼 수 있 습 니 다. MASTRE 화해시키다 BACUKUP 다 정상 이 야.
백업 로그
분명히 VIP 를 인수 하 는 데 성공 했다.
이로부터 이 실험 은 이미 성공 적 으로 완성 되 었 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.