nginx keepalived lvs

더 읽 기
환경 준비
모두 4 대의 가상 컴퓨터 입 니 다. 제 가 사용 하 는 mac 의 parallels desktop 에서 만 든 4 대의 centos 7 가상 컴퓨터 입 니 다.
master 192.168.20.104
salve 192.168.20.103
node1 192.168.20.102
node2 192.168.20.98

먼저 가상 컴퓨터 를 설치 한 후에 복 제 를 하면 된다.
가상 컴퓨터 설정
1. master 의 keepalived 를 설치 하고 다음 스 크 립 트 를 참고 하 십시오.
# -------------------------------------------------------- #
            ## Keepalived_intsall
# -------------------------------------------------------- #
# Keepalived installation
yum install -y gcc openssl-devel popt-devel
# error libnfnetlink headers missing
yum install -y libnfnetlink-devel
cd /root/software
[ ! -e keepalived-1.2.24.tar.gz ] &&  wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz
tar -zxvf keepalived-1.2.24.tar.gz
cd keepalived-1.2.24
./configure --prefix=/usr/local/keepalived
make && make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived
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
echo $? || [ $? != 0  ] || print " installation keepalived  failed" || exit 1
chkconfig --add keepalived
chkconfig --level 345 keepalived on

 이상 은 해당 압축 패 키 지 를 다운로드 한 후 설치 설정 을 진행 합 니 다.
centos 7 이번에 제 가 사용 한 것 은 yum 설치 입 니 다. 명령 행 에서 명령 을 직접 실행 합 니 다.
yum install keepalived //  
keepalived -v //     

master 와 해당 하 는 salve 의 keepalived 를 설정 하고 명령 을 실행 합 니 다:
vim /usr/local/keepalived/keepalived.conf //      
! Configuration File for keepalived

global_defs {
   notification_email {
        root@localhost
        [email protected]                              ##        
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 3
   router_id LVS_DEVEL
}
vrrp_instance VI_1 {                          ##  vrrp  1
    state MASTER                           ##BACKUP   BACKUP
    interface eth0
    virtual_router_id 51
    priority 101                           ##BACKUP   100   
    advert_int 1
    garp_master_delay 5
    authentication {
        auth_type PASS
        auth_pass 1111
    }
virtual_ipaddress {
        192.168.20.10
    }
virtual_server 192.168.20.10 80 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT #         DR NAT TUN。      LVS         
    nat_mask 255.255.255.0
    persistence_timeout 5
    protocol TCP
    real_server 192.168.20.98 80 {
        weight 10
        HTTP_GET {
            url {
              path /
            status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
      }
    }
real_server 192.168.20.102 80 {
        weight 10
        HTTP_GET {
            url {
              path /
            status_code 200
            }
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

2. 방화벽 설정, 실행 명령:
sysemctl stop firewalld.service //  
sysemctl disable firewalld.service //      

3. ipvsadm 설치, 실행 명령:
yum install ipvsadm //  
ipvsadm -v //    

4. (선택 가능) iptables 방화벽 을 설치 하려 면 해당 하 는 방화벽 정책 을 설정 하고 명령 을 실행 해 야 합 니 다.
vim /etc/sysconfig/iptables

eg:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -s 172.21.4.51 -j ACCEPT
-A INPUT -s 172.21.4.52 -j ACCEPT
-A INPUT -s 172.21.4.91 -j ACCEPT
-A INPUT -s 172.21.4.92 -j ACCEPT

 해당 포트 를 엽 니 다.
 
5. 노드 에 nginx 를 설치 하고 해당 하 는 방화벽 을 설치 하여 nginx 80 포트 에 접근 할 수 있 도록 주의 하 십시오. 스 크 립 트 를 참고 하 십시오.
#!/bin/bash
# author: kuangl
# mail: [email protected]
# description: The installation of Nginx files.
# -------------------------------------------------------- #
         ## Nginx_install
# -------------------------------------------------------- #
# Nginx installation
#CURRENT_PATH=$(pwd)
for i in $(rpm -q gcc gcc-c++ kernel-devel openssl-devel zlib-devel popt-devel popt-static libnl-devel wget make |grep 'not installed' | awk '{print $2}')
do
    yum -y install $i
done
[ -d /root/software ]
[ "$?" != 0 ] && mkdir /root/software
cd /root/software
[ !  -e pcre-8.40.tar.gz ] && wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
tar -zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure
make && make install
echo $? || [ $? != 0  ] || echo  " installation pcre  failed" || exit 1
cd /root/software
[ ! -e nginx-1.11.5.tar.gz ] && wget http://nginx.org/download/nginx-1.11.5.tar.gz
tar -zxvf nginx-1.11.5.tar.gz
cd nginx-1.11.5
./configure  --prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module  --with-http_gzip_static_module
make && make install
echo $? || [ $? != 0  ] || echo  " installation  nginx  failed" || exit 1

 6. nginx 노드 에 lvs 설정
ipvsadm -C
ipvsadm -At 192.168.20.10:80 -s rr
ipvsadm -at 192.168.20.10:80 -r 192.168.20.98 -m
ipvsadm -at 192.168.20.10:80 -r 192.168.20.102 -m
-a        -t lvs VIP -r     ip    -w    -g  DR   -m NAT  

 7. 시작 및 검증
keepalived      
(1)       ,         sh  ,    :/etc/init.d/keepalived start
(2)centos7 yum  ,     
    systemctl daemon-reload      
    systemctl enable keepalived.service          
    systemctl disable keepalived.service         
    systemctl start keepalived.service   
    systemctl stop keepalived.service  
(3)      
    systemctl status keepalived.service
nginx         
(1)  linux   
(2)       
    Linux   (Iptables)      
      : chkconfig iptables on
      : chkconfig iptables off
    
    Linux   (Iptables)     ,     
      : service iptables start
      : service iptables stop
nginx    :
    nginx -v //    
    ps -ef|grep nginx //    ,   ,       
    kill -9     //    
    pkill -9 nginx //    
    nginx -c /usr/local/nginx/nginx.conf //  
    nginx -s stop //       
    nginx -s qiut //       
    nginx -s reload //           

 
8. 주의사항
1、       : /var/log/messages ,               keepalived   -d   。
2、   MASTER priority      ,     (service vrrp start)               。
3、   MASTER priority      ,     down/up  ,       down  up ,      。
4、   MASTER priority      ,        down(  ),        ,               。
#keepalived                    ,    vrrp_instance    。
#         0,  weight      0,         
#         0,  weight      0,         
#    ,          ,      priority    。
#        :
#1)    “  ”         , track      ,     
#2)                        weight
#3)               ,          [1,254],           0         255   
#                   ,                。 

9. 참조 링크
http://blog.csdn.net/yinwenjie/article/details/47211551
http://www.linuxidc.com/Linux/2015-07/120179.htm
http://blog.csdn.net/nimasike/article/details/51867046
http://os.51cto.com/art/201103/249045.htm
https://github.com/jiji87432/nginx_sh //관련 설치 설정 스 크 립 트

좋은 웹페이지 즐겨찾기