keepalived+nginx

우리 먼저 keepalived 의 작업 원 리 를 이야기 합 시다.
keepalived 의 작업 원 리 는 세 가지 측면 을 바탕 으로 시 IP 층, TCP 층 과 응용 층 IP 층: keepalived 는 정기 적 으로 서버 클 러 스 터 에 있 는 서버 에 ping 프로그램 과 유사 한 ICMP 패 킷 을 보 냅 니 다.통속 적 인 이 해 는 바로 내 가 keepalived 로 ping 서버 에 왔 다 는 것 이다. 내 가 ping 이 통 하면 네가 살아 있다 는 것 을 알 고 우 리 는 계속 합작 할 수 있다. 만약 불행 하 게 도 네가 끊 었 다 는 것 을 알 게 된다 면 이 서버 를 차 야 한다.이 층 은 서버 ip 주소 가 유효 하도록 한 번 에 이 서버 가 계속 근무 할 수 있 는 지 를 판단 하 는 것 이다.TCP 층: 이 층 은 IP 층 과 유사 합 니 다. 다만 IP 층 은 IP 를 검사 하고 이 층 은 TCP 포트 를 검사 합 니 다.keepalived 는 IP 층 에 있 고 서버 의 IP 가 유효 하 다 고 보고 한 다음 에 TCP 포트 를 계속 보 세 요. 예 를 들 어 웹 server 라면 80 포트 가 열 려 야 합 니 다. keepalived 가 80 포트 가 시작 되 지 않 은 것 을 발견 하면.그러면 그것 은 네가 이미 끊 었 다 고 생각 하고 제거 할 것 이다.응용 층: 이 층 은 구체 적 인 작업 프로그램 입 니 다. keepalived 는 직무 를 다 하 는 검사 입 니 다. 응용 층 의 프로그램 은 사용자 의 설정 과 밀접 한 관 계 를 가지 고 있 습 니 다. keepalived 는 서버 의 운행 이 사용자 설정 과 일치 하 는 지 확인 하고 일치 하지 않 으 면 keepalived 는 이 서버 의 희생 을 선고 합 니 다.
keepalived + nginx
호스트: 172.25.44.3   server 3 예비 기기: 172.25.44.4   server4
가상 ip 설정
[root@server3 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0:0DEVICE=eth0:0TYPE=EthernetONBOOT=yesBOOTPROTO=staticDNS1=172.25.44.44IPADDR=172.25.44.100NETMASK=255.255.255.0GETWAY=172.25.44.44[root@server3 ~]# /etc/init.d/network restart[root@server3 ~]# ifconfigeth0      Link encap:Ethernet  HWaddr 52:54:00:48:60:3E          inet addr:172.25.44.4  Bcast:172.25.44.255  Mask:255.255.255.0          inet6 addr: fe80::5054:ff:fe48:603e/64 Scope:Link          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:11926 errors:0 dropped:0 overruns:0 frame:0          TX packets:6533 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:25662550 (24.4 MiB)  TX bytes:876645 (856.0 KiB)
eth0:0    Link encap:Ethernet  HWaddr 52:54:00:48:60:3E          inet addr:172.25.44.100  Bcast:172.25.44.255  Mask:255.255.255.0          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:16436  Metric:1          RX packets:36283 errors:0 dropped:0 overruns:0 frame:0          TX packets:36283 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:1982812 (1.8 MiB)  TX bytes:1982812 (1.8 MiB)

주 준비 기 는 모두 배치 해 야 한다.
설치 nginx
설치 패키지: nginx - 1.10.3. tar. gz 압축 해제 설치 패키지: tar zxf nginx - 1.10.3. tar. gz
[root@server3 software]# cd nginx-1.10.3 —prefix=/usr/local/lnmp/nignx
[root@server3 nginx-1.10.3]# ./configure
[root@server3 nginx-1.10.3]# make
[root@server3 nginx-1.10.3]# make install
[root@server3 nginx-1.10.3]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
#  nginx    

설정 nginx
[root@server3 nginx-1.10.3]# cd /usr/local/lnmp/nginx/conf[root@server3 conf]# vim nginx.conf/#  8088         /var/www/html, nginx         /usr/local/lnmp/nginx/html
server {        listen       8088;#  8088          server_name  localhost;
    location / {
        root   /var/www/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/local/lnmp/nginx/html;
    }
}
[root@server3 conf]# cd /var/www/html[root@server3 html]# vim index.html


Welcome to nginx!


Welcome to nginx! 172.25.44.3

[root@server3 html]# nginx

keepalived 설치
설치 패키지: keepalived - 1.2.2. tar. gz
[root@server3 software]# wget 
http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
[root@server3 software]# tar zxf keepalived-1.2.2.tar.gz
[root@server3 software]# cd keepalived-1.2.2
[root@server3 keepalived-1.2.2]# ./configure
[root@server3 keepalived-1.2.2]# make
[root@server3 keepalived-1.2.2]# make install
[root@server3 keepalived-1.2.2]# cp /usr/local/sbin/keepalived /usr/sbin/
[root@server3 keepalived-1.2.2]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server3 keepalived-1.2.2]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@server3 keepalived-1.2.2]# cp -r /usr/local/etc/keepalived/ /etc/

leepalived 설정
[root@server3 keepalived-1.2.2]# vim /var/www/html/index.html
global_defs {
    router_id LVS_DEVEL
}
vrrp_script chk_http_port {
    script “ 
  
#state MASTER:MASTER ,BACKUP
#priority 100: ,
#virtual_ipaddress: vip
#track_scrip:
[root@server3 keepalived-1.2.2]# /etc/init.d/keepalived start

호스트 동기 화 작업 절차: keepalived 설정 파일 에서 호스트 의 state 는 MASTER 이 고, 호스트 의 state 는 BACKUP 이 며, 호스트 의 priority 는 호스트 보다 작 습 니 다.
테스트
인증 nginx 시작 정상
호스트 nginx 의 기본 페이지 에 접근 하기
호스트 nginx 지정 페이지 에 접근
준비 장치 nginx 의 기본 페이지 에 접근 합 니 다.
준비 장치 nginx 지정 페이지 방문
방문 vip
호스트 server 3 의 우선 순위 가 더 높 습 니 다. 호스트 가 완전한 상태 에서 server 3 가 nginx 를 부하 합 니 다.
[root@server3 software]# /etc/init.d/keepalived stop
Stopping keepalived:                                       [  OK  ]

호스트 의 keeplived 서비스 가 끊 겼 을 때, vip 에 접근 하면, 예비 기기 가 자동 으로 nginx 를 부하 하여 실 행 됩 니 다.
[root@server4 conf]# ip a
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:48:60:3e brd ff:ff:ff:ff:ff:ff
    inet 172.25.44.4/24 brd 172.25.44.255 scope global eth0
    inet 172.25.254.104/24 brd 172.25.254.255 scope global eth0
    inet 172.25.44.100/32 scope global eth0
    inet 172.25.44.100/24 brd 172.25.44.255 scope global secondary eth0:0
    inet6 fe80::5054:ff:fe48:603e/64 scope link
       valid_lft forever preferred_lft forever

동시에 VIP 가 예비 서버 서버 4 에 떠 있 는 것 을 볼 수 있 습 니 다.
[root@server3 software]# /etc/init.d/keepalived start
Starting keepalived:                                       [  OK  ]

호스트 server 3 의 keepalived 서 비 스 를 시작 하고 vip 에 다시 접근 하면 nginx 의 부하 가 다시 호스트 server 3 로 돌아 갑 니 다.
[root@server3 software]# ip a
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:b4:14:0d brd ff:ff:ff:ff:ff:ff
    inet 172.25.44.3/24 brd 172.25.44.255 scope global eth0
    inet 172.25.254.103/24 brd 172.25.254.255 scope global eth0
    inet 172.25.44.100/32 scope global eth0
    inet6 fe80::5054:ff:feb4:140d/64 scope link
       valid_lft forever preferred_lft forever

이 경우 ip 를 보면 호스트 server 3 에 VIP 가 떠 있 는 것 을 발견 합 니 다.
응용 층 에 문제 가 생 긴 경우 호스트 server 3 의 nginx 서 비 스 를 중단 하면 예비 서버 server 4 도 nginx 지원 전단 의 접근 을 자동 으로 연결 합 니 다.
[root@server3 software]# killall nginx

문제 보충: 준비 기 keepalived 의 배합 프로필 에서 state 를 수정 한 상황 에서 실험 도 성공 할 수 있 습 니 다. 두 기 계 는 priority 우선 순위 경쟁 을 통 해 이 루어 져 야 한다 고 생각 합 니 다.

좋은 웹페이지 즐겨찾기