keepalived + nginx 높 은 사용 가능 및 부하 균형 클 러 스 터 구축

4652 단어
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.     시스템 환경 은 모두 CentOS release (Final) 32 비트 로 가상 컴퓨터 에서 성공 적 으로 이 루어 졌 다.
  • 모든 패 키 지 는 yum 방식 으로 설치 되 어 있 으 며, yum 소스 는 모두 아 리 클 라 우 드 서버 에서 사용 되 고 있다.
  • 후속 적 으로 불필요 한 번 거 로 움 을 피하 기 위해 모두 방화벽 을 닫 았 다
  • 본 실험 구조의 토폴로지 도 는 다음 과 같다.
  • 기계 IP 계획 은 다음 과 같다.
  • 2. 백 엔 드 apache 의 설치 설정 apache1:
    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
  • Nginx 설치 및 설정
  • 1 설치 환경 에 필요 한 의존 패키지
    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 를 설정 하 였 으 며, 여 기 는 더 이상 군말 하지 않 습 니 다.
    이상 프로필 의 내용 은 드 물 지만 중요 한 부분 이 므 로 나중에 사용 할 기능 이 점점 추 가 됩 니 다.
     
  • keepalived 의 설치 와 설정
  • 기계 에 keepalived 설치
  • yum install -y keepalived
    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 보다 작 아야 합 니 다)
  • 가상 IP 수 동 추가
  • 각각 master 와 backup 에서 다음 명령 을 수행 합 니 다.
    ifconfig eth1:0 up
    그리고 보면 IP 가 두 개 있 을 거 예요.
     
  • 두 기계 에서 각각 nginx 와 keepalived 를 재 부팅 하여 테스트
  • service nginx restart
    service keepalived restart
  • 1. master 에서 볼 수 있다
  • 백업 에서 볼 수 있 습 니 다.
    로 그 를 보면 서버 두 대 를 볼 수 있 습 니 다. MASTRE 화해시키다 BACUKUP 다 정상 이 야.
  • 2. master 의 nginx 를 수 동 으로 멈 추 면 master 로그
  • 를 볼 수 있 습 니 다.
    백업 로그
    분명히 VIP 를 인수 하 는 데 성공 했다.
    이로부터 이 실험 은 이미 성공 적 으로 완성 되 었 다.

    좋은 웹페이지 즐겨찾기