• 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

    测试浏览器

  • 相关阅读:
    线上环境 Linux 系统调用追踪
    深挖前端 JavaScript 知识点 —— 史上最全面、最详细的 Cookie 总结
    揭秘 vivo 如何打造千万级 DAU 活动中台
    我和大厂Offer有个约会之padding-top的百分比值参考对象竟是父级元素的宽度
    【Electron Playground 系列】文件下载篇
    [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)
    【人生苦短,我学 Python】基础篇——基本语句(Day5)
    P3224 [HNOI2012]永无乡
    P2146 [NOI2015]软件包管理器
    P3203 [HNOI2010]弹飞绵羊
  • 原文地址:https://www.cnblogs.com/liyurui/p/11641993.html
Copyright © 2020-2023  润新知