nginx + keepalived 메 인 구축 기록

11929 단어 linux
nginx 설치
1. 소프트웨어 설치
nginx version: nginx/1.16.1
nginx 가 설치 한 서버: 192.168.4.201 / 192.168.4.202
yum install -y nginx

2. 소프트웨어 시작
systemctl start nginx

3. nginx. conf 위치 보기
[root@localhost bin]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

5. 자동 시작 설정 켜 기
 systemctl enable nginx.service #  nginx   
 systemctl status nginx   #  nginx  

7. keepalived 설치
ip
keepalived 역할
가상 ip
192.168.4.201
BACKUP
192.168.4.200
192.168.4.202
MASTER
192.168.4.200
1. 설치 에 필요 한 의존
yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

2. keepalived 설치
디렉토리 에 들어가다
cd /usr/local/src

keepalived 다운로드
wget https://github.com/acassen/keepalived/archive/v2.0.18.tar.gz

스트레스 를 풀다
tar -zxvf v2.0.18.tar.gz

디렉토리 에 들어가다
cd keepalived-2.0.18

설치 시작
./build_setup

오류 가 발생 하면 xxx 에서 명령 을 찾 지 못 하면 다음 명령 을 실행 하여 해당 하 는 도 구 를 설치 합 니 다.
yum -y install aclocal autoheader automake autoreconf

다시 명령 을 집행 하 다
./build_setup

컴 파일 & 설치
./configure
make && make install

3. keepalived 설정
시스템 기본 경로 로 관련 프로필 복사
mkdir /etc/keepalived
cp ./keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp ./keepalived/etc/init.d/keepalived /etc/init.d/
cp ./keepalived/etc/sysconfig/keepalived /etc/sysconfig/

프로필 수정
vim /usr/lib/systemd/system/keepalived.service

PIDFile 의 값 을 / var / run / keepalived. pid 로 변경 합 니 다.
keepalived 설정 파일 수정
vim /etc/keepalived/keepalived.conf

Master 기기 (192.168.4.202) 의 설정 파일 은 다음 과 같 습 니 다.
!configuration File for keepalived
global_defs {
   router_id nginx_ha
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   script_user root
   enable_script_security
   # notification_email
}
vrrp_script chk_nginx {
    # nginx       
    script "/etc/keepalived/nginx_check.sh" interval 2
    weight 20
}

vrrp_instance VI_1 {
    state MASTER
    interface ens32 
    virtual_router_id 51 
    priority 100 
    advert_int 1 
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        #   ip  
        192.168.4.200 
    }
    track_script {
        chk_nginx
    }
    notify_master "/usr/bin/python /etc/keepalived/send_email.py"
}

Backup (192.168.4.201) 기기 의 설정 파일 은 다음 과 같 습 니 다.
!configuration File for keepalived
global_defs {
   router_id nginx_ha
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   script_user root
   enable_script_security
   # notification_email
}
vrrp_script chk_nginx {
    # nginx       
    script "/etc/keepalived/nginx_check.sh" interval 2
    weight 20
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens32 
    virtual_router_id 51 
    priority 100 
    advert_int 1 
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.4.200
    }
    track_script {
        chk_nginx
    }
    notify_master "/usr/bin/python /etc/keepalived/send_email.py"
}


nginx 작성check 스 크 립 트
#!/bin/bash
if [ $(ps aux|grep nginx|egrep '(master|worker)' | wc -l ) -eq 0 ];  then
    /usr/sbin/nginx
	sleep 2
	if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
	      /etc/init.d/keepalived stop
	fi
else
	echo "nginx is running"

fi

스 크 립 트 에 실행 가능 한 권한 추가
chmod +x /etc/keepalived/nginx_check.sh

작성 sendemail. py 스 크 립 트
#! /usr/bin/env python
# coding=utf-8

from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL

#   smtp   
host_server = '  smtp     '
# sender       
sender = '      '
# pwd      
pwd = 'password'
#       
sender_cbi_mail = '      '
#      
receiver = '      '

#        
mail_content = '  ,  master nginx  172.16.254.102       ,     !

keepalived , !'
# mail_title = 'ngxin !' smtp = SMTP_SSL(host_server) smtp.set_debuglevel(1) smtp.ehlo(host_server) smtp.login(sender, pwd) msg = MIMEText(mail_content, "plain", 'utf-8') msg["Subject"] = Header(mail_title, 'utf-8') msg["From"] = sender_cbi_mail msg["To"] = receiver smtp.sendmail(sender_cbi_mail, receiver, msg.as_string()) smtp.quit()

Keepalived 를 시작 하고 켜 기 시작 에 추가 합 니 다.
systemctl start keepalived
systemctl enable keepalived

4. 상용 디 렉 터 리 및 명령
keepalived 로그 경로
/var/log/messages

keepalived 프로필 경로
/etc/keepalived/keepalived.conf

keepalived 명령 시작
systemctl start keepalived

keepalived 명령 다시 시작
systemctl restart keepalived

keepalived 명령 정지
systemctl stop keepalived

keepalived 의 설치 디 렉 터 리
/usr/local/src/keepalived-2.0.18

좋은 웹페이지 즐겨찾기