zoukankan      html  css  js  c++  java
  • nginx与keepalived实现高可用

    准备四台主机

    首先都关闭防火墙

    systemctl stop firewalld

    setenforce 0

    iptables -F

     

    第一台主机

    #安装keepalived

    [root@localhost ~]# yum -y install keepalived

    #安装nginx

    [root@localhost ~]# yum -y install nginx

    #keepalived配置文件

    [root@localhost ~]# vim /etc/keepalived/keepalived.conf

    ! Configuration File for keepalived

    global_defs {

       notification_email {

         acassen@firewall.loc

         failover@firewall.loc

         sysadmin@firewall.loc

       }

       notification_email_from Alexandre.Cassen@firewall.loc

       smtp_server 192.168.200.1

       smtp_connect_timeout 30

       router_id LVS_DEVEL

       vrrp_skip_check_adv_addr

       vrrp_strict

       vrrp_garp_interval 0

       vrrp_gna_interval 0

    }

    vrrp_script check_nginx {  #引入脚本文件

           script "/shell/nginx_check.sh"

           interval 2

           weight -20

    }

    vrrp_instance VI_1 {

        state MASTER   #主

        interface eno16777728 #心跳网卡

        virtual_router_id 51

        priority 100 #优先级

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        virtual_ipaddress {

            192.168.200.254

        }

        track_script {

           check_nginx  #引用脚本

        }

    }

    安装nginx

    [root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel

    [root@localhost~]# useradd -M -s /sbin/nologin  nginx

    [root@localhost~]# tar xf nginx-1.6.2.tar.gz -C /usr/src

    [root@localhost~]# cd /usr/src/nginx-1.6.2

    [root@localhost nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install

    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

    31     keepalive_timeout  65;

     32     upstream httpd1 {

     33       server 192.168.200.14:80 weight=1;

     34       server 192.168.200.15:80 weight=2;

     35   }

     

    46         location / {

     47             root   html;

     48             proxy_pass http://httpd1;

     49             proxy_set_header Host $host;

     50         }

    [root@localhost ~]# nginx

    第二台主机

    从keepalived设置

    #安装keepalived

    [root@localhost ~]# yum -y install keepalived

    #安装nginx

    [root@localhost ~]# yum -y install nginx

    ______________________________________________________________

    #keepalived配置文件

    [root@localhost ~]# vim /etc/keepalived/keepalived.conf

    ! Configuration File for keepalived

     

    global_defs {

       notification_email {

         acassen@firewall.loc

         failover@firewall.loc

         sysadmin@firewall.loc

       }

       notification_email_from Alexandre.Cassen@firewall.loc

       smtp_server 192.168.200.1

       smtp_connect_timeout 30

       router_id LVS_DEVEL

       vrrp_skip_check_adv_addr

       vrrp_strict

       vrrp_garp_interval 0

       vrrp_gna_interval 0

    }

    vrrp_script check_nginx {

           script "/shell/nginx_check.sh"

           interval 2

           weight -20

    }

     

    vrrp_instance VI_1 {

        state BACKUP

        interface eno16777728

        virtual_router_id 51

        priority 90

        advert_int 1

        authentication {

            auth_type PASS

            auth_pass 1111

        }

        virtual_ipaddress {

            192.168.200.201

        }

        track_script {

           check_nginx

        }

    }

    安装nginx

    [root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel

    [root@localhost~]# useradd -M -s /sbin/nologin  nginx

    [root@localhost~]# tar xf nginx-1.6.2.tar.gz -C /usr/src

    [root@localhost~]# cd /usr/src/nginx-1.6.2

    [root@localhost nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install

    [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

    31     keepalive_timeout  65;

     32     upstream httpd1 {

     33       server 192.168.200.14:80 weight=1;

     34       server 192.168.200.15:80 weight=2;

     35   }

     

    46         location / {

     47             root   html;

     48             proxy_pass http://httpd1;

     49             proxy_set_header Host $host;

     50         }

    [root@localhost ~]# nginx

    四、nginx_check.sh shell文件,配置为周期性任务

    #!/bin/bash

    count="$(ps -C nginx --no-header|wc -l)"

     

    if [ $count -eq 0 ];then

            systemctl restart nginx

            sleep 2

            if [ ps -c nginx --no-header|wc -l -eq 0 ];then

                    systemctl stop keepalived

            fi

    fi

    #配置周期任务不再演示

    第三台主机

    首先安装nginx1

    [root@localhost ~]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel

    [root@localhost~]# useradd -M -s /sbin/nologin  nginx

    [root@localhost~]# tar xf nginx-1.6.2.tar.gz -C /usr/src

    [root@localhost~]# cd /usr/src/nginx-1.6.2

    [root@localhost nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install

    [root@localhoost nginx-1.6.2]# cd /usr/local/nginx/html/

    [root@localhost html]# echo "11111" > index.html

    [root@localhost html]# /usr/local/nginx/sbin/nginx

    [root@localhost html]# netstat -anpt |grep nginx

    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      4503/nginx 

    第四台

    安装nginx2,同nginx1搭建方式一样

    与Nginx1唯一不同的是:

    [root@localhost html]# echo "22222" > index.html

    测试浏览器

  • 相关阅读:
    kotlin,短小精悍
    最近把Vue又看了下
    https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#webflux-cors
    os模块——获取上层目录
    启动flask服务:flask run -h 0.0.0.0 -p 5000
    22端口和3389端口之我竟然用3389连接linux服务器,关键是我之前用22端口连接过linux!!!
    datetime 模块
    查看公网ip
    字典——删除元素
    docker端口映射
  • 原文地址:https://www.cnblogs.com/liyurui/p/11641993.html
Copyright © 2011-2022 走看看