• keepalive + nginx 搭建高可用集群动态网站


    环境准备:

    两台节点部署keepalived,并且设为互为主从,实现高可用。

    两台从节点部署nginx以及相关组件,作为真实服务器实现动态网站上线。

    一、MASTER(BACKUP)节点下载keepalived并且配置文件。

    作为

    1)  yum -y install keepalived

    设置为v1的主节点,v2的从节点

    虚拟ip为192.168.253.250

    后端真实服务器ip为 192.168.253.146  和  192.168.253.188

    [root@localhost ~]# cat /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_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.253.250
        }
    }
    vrrp_instance VI_2 {
        state BACKUP
        interface ens33
        virtual_router_id 52
        priority 99
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 2222
        }   
        virtual_ipaddress {
            192.168.253.200
        }   
    }   
    
    virtual_server 192.168.253.250 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 50
        protocol TCP
    
        real_server 192.168.253.188 80 {
            weight 1
            HTTP_GET {
                url {
                  path /
              state_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }
    
    virtual_server 192.168.253.250 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 50
        protocol TCP
    
        real_server 192.168.253.146 80 {
            weight 1
            HTTP_GET {
                url {
                  path /
                  state_code 200
                }
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
            }
        }
    }
    cat /etc/keepalived/keealived.conf

    2)   重启keepalived

    [root@localhost ~]# systemctl restart keepalived

    二、BACKUP(master)节点下载keepalived并且配置文件。

    设置为v1的从节点,v2的主节点

    虚拟ip为192.168.253.200

    后端真实服务器ip也是 192.168.253.146  和  192.168.253.188

    3)测试互为主备的两个节点是否设置成功

    一台节点执行:systemctl stop keepalived 停掉高可用服务

    如果虚拟ip发生漂移说明设置成功。如下:

    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:33:f9:60 brd ff:ff:ff:ff:ff:ff
        inet 192.168.253.168/24 brd 192.168.253.255 scope global dynamic ens33
           valid_lft 1338sec preferred_lft 1338sec
        inet 192.168.253.250/32 scope global ens33
           valid_lft forever preferred_lft forever
        inet 192.168.253.200/32 scope global ens33
           valid_lft forever preferred_lft forever
    

    三、在后端服务器上部署lnmp。

    1)下载nginx及相关组件.

     yum install nginx php php-mysql php-fpm mariadb-server -y

    2)编辑nginx配置文件,修改两处

    index index.php index.html;


     location ~ /.*.php$ {
            fastcgi_pass 127.0.0.1:9000;
            include fastcgi.conf;
            }

    然后重启相关服务

    systemctl restart nginx

    systemctl restart php-fpm

    3)重启maridb并创建数据库,用户和密码。

      systemctl restart mariadb

    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> create database baba;
    ERROR 1007 (HY000): Can't create database 'baba'; database exists
    MariaDB [(none)]> grant all on *.* to ken@'localhost' identified by '1';

    4)在/var/www/html上传wordpress包。复制并根据数据库修改库名、用户名密码等。

    [root@localhost ~]# cd /var/www/html/
    [root@localhost html]# ls
    index.php    wordpress-3.3.1-zh_CN.zip  wp-blog-header.php    wp-content         wp-load.php   wp-register.php   xmlrpc.php
    license.txt  wp-activate.php            wp-comments-post.php  wp-cron.php        wp-login.php  wp-settings.php
    readme.html  wp-admin                   wp-config.php         wp-includes        wp-mail.php   wp-signup.php
    wordpress    wp-app.php                 wp-config-sample.php  wp-links-opml.php  wp-pass.php   wp-trackback.php

    // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
    /** WordPress 数据库的名称 */
    define('DB_NAME', 'baba');

    /** MySQL 数据库用户名 */
    define('DB_USER', 'baba');

    /** MySQL 数据库密码 */
    define('DB_PASSWORD', '1');

    5)使用shell写一个添加回环路由的脚本,并执行。

    #!/bin/bash
    case $1 in
    start)
            echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
            echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
            echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
            ifconfig ens33:0 192.168.253.250/32 broadcast 192.168.253.250 up
            if [ $? -eq 0 ];then
                    route add -host 192.168.253.250 dev ens33:0
            fi
            echo "启动成功"
    ;;
    stop)
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
            ifconfig ens33:0 down
            route del -host 192.168.253.250
            echo "删除成功"
    ;;
    *)
            echo "usage start|stop"
    ;;
    esac
    vim 1.sh

    bash 1.sh start

    6)主节点查看是否添加到后端集群中

    [root@localhost ~]# ipvsadm -L -n
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.253.250:80 rr persistent 50
      -> 192.168.253.146:80           Route   1      0          0         
      -> 192.168.253.188:80           Route   1      0          0         

    7)使用虚拟ip访问动态网站。

  • 相关阅读:
    周纪一
    太极拳_起势
    Guidelines for clock
    Linker scripts之MEMORY
    Linker scripts之SECTIONS
    Linker scripts之Intro
    潭州课堂25班:Ph201805201 爬虫基础 第十三课 cookie (课堂笔记)
    潭州课堂25班:Ph201805201 爬虫基础 第十二课 点触验证码二 (课堂笔记)
    潭州课堂25班:Ph201805201 爬虫基础 第十一课 点触验证码 (课堂笔记)
    潭州课堂25班:Ph201805201 爬虫基础 第十课 图像处理- 极验验证码 (课堂笔记)
  • 原文地址:https://www.cnblogs.com/zzzynx/p/11120326.html
Copyright © 2020-2023  润新知