站長資訊網
        最全最豐富的資訊網站

        CentOS服務器分布式環境安裝教程

        2. 服務器規劃

        操作系統版本為:

        CentOS Linux release 7

        軟件配置:

        服務器

        安裝軟件

        Server1

        Nginx+keepalived(主) 重定向服務(redirect)

        Server2

        Postgresql(主) redis(從) 重定向服務(redirect)

        Server3

        Postgresql(從) redis(主) Nginx+keepalived(備)

        Server4

        Postgresql(日志) redis(從) 重定向服務

        3. 安裝包目錄

        4. 安裝前準備

        將所需要的安裝軟件分別上傳到對應的服務器上(如無特殊要求最好安裝到/opt目錄, 關閉防火墻, 上傳yum安裝包。

        4.1Centos7 關閉防火墻(重要)

        systemctl stop firewalld.service
        systemctl disable firewalld.service

        查看防火墻狀態:

        firewall-cmd –state

        結果如上圖所示,則代表已經關閉

        4.2上傳” rpm-packages”到/opt目錄

        4.3安裝rpm packages

        cd /opt/rpm-packages

        rpm -Uvh –force–nodeps *.rpm

        5. 安裝JDK(建議所有服務器都安裝)

        5.1上傳 ”軟件-jdk”里面的文件到/opt

        5.2查看現有jdk

        rpm -qa|grep java

        若結果如上則跳過5.3

        5.3刪除現有jdk

        rpm -e –nodeps

        5.4安裝jdk1.7

        rpm -ivh/opt/jdk-7u80-linux-x64.rpm

        5.5驗證JDK是否正確安裝

        java -version

        如果結果如上,則代表安裝正確

        6. Nginx 安裝(server1, server3)

        6.1上傳 ”軟件-nginx” 里面的文件到/opt

        6.2安裝

        cd /opt

        tar -zxvfopenresty-1.11.2.5.tar.gz

        cdopenresty-1.11.2.5

        ./configure

        gmake

        gmake install

        6.3創建軟鏈

        ln -s/usr/local/openresty/nginx/sbin/nginx /usr/bin/nginx

        6.4修改配置文件

        vim /usr/local/openresty/nginx/conf/nginx.conf

        增加upstream(如果有多個重定向服務器,需要配置多個server, 例子是2個, 位置與server平級,可以參考配置樣例):

        upstream myserver{

        server 10.33.26.125:8080; # (重定向服務器IP+端口)

        server 10.33.26.126:8080; # (重定向服務器IP+端口)

        }

        替換原來的location /

        location / {

        set $urlParams '';

        rewrite_by_lua_filelua/get_args.lua;

        proxy_passhttp://myserver$urlParams;

        }

        配置樣例:

        6.5上傳get_args.lua

        cd /usr/local/openresty/nginx

        mkdir lua

        cd lua

        cp /opt/get_args.lua ./

        6.6啟動openResty

        nginx -c /usr/local/openresty/nginx/conf/nginx.conf

        6.7查看nginx是否安裝成功

        ps -ef|grep nginx

        若結果如上圖,則代表安裝成功,如果失敗,可以用以下腳本查看詳情:

        tail -f/usr/local/openresty/nginx/logs/error.log

        7. Keepalived安裝(server1,server3)

        7.1解壓安裝

        cd /opt

        tar -zxvf keepalived-1.3.4.tar.gz

        cd keepalived-1.3.4

        ./configure –prefix=/usr/local/keepalived–sysconf=/etc

        make

        make install

        7.2建立軟鏈

        ln-s /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived

        7.3修改配置文件()

        注意:先清空原有文件內容,然后按主從添加對應的內容

        Vim清空文件命令:dG

        vim /etc/keepalived/keepalived.conf

        =============主節點配置=================

        global_defs {

        router_id LVS_DEVEL_1

        }

        vrrp_scriptchk_nginx {

        script"/etc/keepalived/nginx_check.sh"

        interval 2

        weight -20

        }

        vrrp_instance VI_1{

        state MASTER

        interface ens33 #網卡名稱 可用ip addr查看

        virtual_router_id 51

        priority 100

        advert_int 1

        authentication {

        auth_type PASS

        auth_pass 1111

        }

        track_script {

        chk_nginx

        }

        virtual_ipaddress {

        10.33.26.120 #虛擬IP(VIP)

        }

        }

        =============從節點配置=======================

        global_defs {

        router_id LVS_DEVEL_2

        }

        vrrp_scriptchk_nginx {

        script"/etc/keepalived/nginx_check.sh"

        interval 2

        weight -20

        }

        vrrp_instance VI_1{

        state backup

        interface ens33 #網卡名稱 可用ip addr查看

        virtual_router_id 51

        priority 98

        advert_int 1

        authentication {

        auth_type PASS

        auth_pass 1111

        }

        track_script {

        chk_nginx

        }

        virtual_ipaddress {

        10.33.26.120 #虛擬IP(VIP)

        }

        }

        主配置截圖如下:

        從配置截圖如下:

        7.4上傳nginx_check.sh

        cd /etc/keepalived

        cp /opt/nginx_check.sh ./

        chmod +x nginx_check.sh

        7.5啟動keepalived

        keepalived-f /etc/keepalived/keepalived.conf

        7.6查看keepalived是否安裝成功

        ps-ef|grep keepalived

        若結果如上圖,則代表安裝成功,如果失敗,可以用以下腳本查看詳情:

        tail -f/var/log/messages

        8. Postgresql安裝(server2-主,server3-從)

        8.1上傳 “軟件-postgresql”里面的文件到/opt

        8.2解壓安裝

        cd /opt

        rpm -ivhpostgresql-9.6.6-1-x64-bigsql.rpm

        8.3配置主從復制

        8.3.1主機配置

        8.3.1.1初始化postgres

        /opt/postgresql/pgc start pg96

        按要求輸入密碼(eg:postgres)

        8.3.1.2初始化數據庫(linux和windows二選一,建議用linux)

        8.3.1.3Linux操作

        上傳 “數據庫初始化腳本-linux” 到/opt

        vim /opt/init_db.sh

        修改/opt/init_db.sh中的PG_HOST為主機IP,PGPASSWORD為8.2輸入的postgres帳戶密碼

        chmod +x/opt/init_db.sh

        sh/opt/init_db.sh

        8.3.1.4Windows操作

        確保Windows環境下有pg數據庫的環境

        修改setup.bat中的localhost為主機IP, PGPASSWORD為8.2輸入的postgres帳戶密碼, 執行行以下腳本:

        setup.bat

        備注: 1_create_db.sql中的數據庫名稱:image_text,如果需要自定義修改,請修改成你們需要的名字,其他不要改動.

        8.3.1.5修改pg_hba.conf

        vim /opt/postgresql/data/pg96/pg_hba.conf

        增加 replica 用戶(10.33.26.125為從機IP),配置如下:

        host replication replica<從機IP>/32md5

        配置截圖如下:

        8.3.1.6重啟

        /opt/postgresql/pgcrestart pg96

        8.3.2從機配置

        8.3.2.1創建用戶和組

        groupadd postgres

        useradd postgres-g postgres

        8.3.2.2將/opt/postgresql目錄授權給postgres

        chown -R postgres:postgres/opt/postgresql

        8.3.2.3切換到postgres用戶

        su postgres

        8.3.2.4從主節點拷貝數據到從節點

        /opt/postgresql/pg96/bin/pg_basebackup-h <主機IP> -U replica -D /opt/postgresql/data/pg96 -X stream

        8.3.2.5配置recovery.conf

        cp/opt/postgresql/pg96/share/postgresql/recovery.conf.sample /opt/postgresql/data/pg96/recovery.conf

        vim/opt/postgresql/data/pg96/recovery.conf

        修改如下配置:

        standby_mode = on # 說明該節點是從服務器

        primary_conninfo = 'host=<主機IP> port=5432 user=replica password=replica' # 主服務器的信息以及連接的用戶

        recovery_target_timeline ='latest'

        配置截圖如下:

        8.3.2.6配置postgresql.conf

        vim/opt/postgresql/data/pg96/postgresql.conf

        修改配置如下:

        hot_standby= on

        8.3.2.7創建logs目錄

        mkdir/opt/postgresql/data/logs

        8.3.2.8啟動

        /opt/postgresql/pg96/bin/pg_ctlstart -D /opt/postgresql/data/pg96/ &

        8.3.3驗證主從復制

        登陸主機,查詢:

        select client_addr,sync_state frompg_stat_replication;

        如果有記錄,則代表配置成功

        9. Redis安裝

        9.1說明

        server2-從, server3-從, server4-主,建議3臺或以上,高可用至少要保持2個sentinel節點存活

        9.2上傳“軟件-redis- redis-4.0.6.tar.gz”到/opt

        9.3解壓安裝

        cd /opt

        tar xzfredis-4.0.6.tar.gz

        cd redis-4.0.6

        make

        make install

        9.4修改配置文件

        Redis.conf

        從機將標紅的IP地址 改成 主機IP地址后上傳至/opt/redis-4.0.6

        主機直接注掉281行上傳至上傳至/opt/redis-4.0.6

        Sentinel.conf

        將標紅的IP地址 改成 主機IP地址后上傳至/opt/redis-4.0.6

        notify_mymaster.sh

        修改后上傳至/opt/redis-4.0.6

        9.5啟動redis

        /opt/redis-4.0.6/src/redis-server /opt/redis-4.0.6/redis.conf

        9.6驗證主從配置

        /opt/redis-4.0.6/src/redis-cli -h <主機IP> -p 6379 info replication

        如果出現以上類似截圖, 則代表配置成功

        9.7高可用(HA )

        9.7.1準備

        創建sentinel目錄:

        mkdir/opt/redis-4.0.6/sentinel-dir

        授執行權限

        chmod +x /opt/redis-4.0.6/notify_mymaster.sh

        9.7.2啟動sentinel, 啟用自動切換

        /opt/redis-4.0.6/src/redis-sentinel/opt/redis-4.0.6/sentinel.conf

        9.7.3驗證sentinel是否搭建成功

        /opt/redis-4.0.6/src/redis-cli-h <主機IP> -p 26379 info sentinel

        若結果如截圖所示, 則代表成功。

        9.7.4在主機上增加虛擬IP

        /sbin/ip addr add <虛擬IP>/24 dev <網卡名稱>

        虛擬IP和網卡名稱需要和9.4中配置的notify_mymaster中的配置保持一致

        10.Zookeeper安裝

        10.1上傳“軟件-zookeeper”里面的文件到/opt

        10.2解壓

        cd /opt

        tar -zxvf zookeeper-3.4.6.tar.gz

        cd zookeeper-3.4.6/conf

        cp zoo_sample.cfg zoo.cfg

        sh/opt/zookeeper-3.4.6/bin/zkServer.sh start

        10.3驗證zookeeper是否安裝成功

        ps -ef|grepQuorumPeerMain

        若上現上述截圖, 則代表配置成功

        tomcat移除項目名

        cd /opt/tomcat-transform/conf/Catalina/localhost

        vim ROOT.xml

        增加如下配置

        13. 啟動腳本匯總

        13.1 Nginx

        殺死:nginx -s stop

        啟動:nginx

        13.2 Keepalived

        殺死: pkill keepalived

        啟動: keepalived -f /etc/keepalived/keepalived.conf

        13.3 Postgresql

        重啟:/opt/postgresql/pgc restart pg96

        13.4 Redis

        殺死: pkill redis

        啟動:

        /opt/redis-4.0.6/src/redis-server/opt/redis-4.0.6/redis.conf

        /opt/redis-4.0.6/src/redis-sentinel/opt/redis-4.0.6/sentinel.conf

        get_args.lua:

        local cjson = require "cjson"
        local request_method = ngx.var.request_method
        local args = ""
        local request_uri = ngx.var.request_uri
        if "POST" == request_method then
        ngx.req.read_body()
        local args = ngx.req.get_post_args()
        local param = ""
        for key, val in pairs(args) do
        param = key
        end
        param = cjson.decode(param)
        ngx.var.urlParams = request_uri.."username="..tostring(param.username).."&sign="..tostring(param.sign).."×tamp="..tostring(param.timestamp)
        else
        ngx.var.urlParams = request_uri

        end

        nginx_check.sh

        #!/bin/bash

        if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )" == "" ]
        then
        nginx || killall keepalived
        else
        echo "nginx is running"

        fi

        notify_master.sh

        #!/bin/bash
        MASTER_IP=$6
        LOCAL_IP='10.33.26.125' # 本機IP
        VIP='10.33.26.127' #虛擬IP, 不能與keepalived中的虛擬IP一致
        NETMASK='24'
        INTERFACE='eno16777736' #網卡名稱
        if [ ${MASTER_IP} = ${LOCAL_IP} ]; then
        /sbin/ip addr add ${VIP}/${NETMASK} dev ${INTERFACE}
        /sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE}
        exit 0
        else
        /sbin/ip addr del ${VIP}/${NETMASK} dev ${INTERFACE}
        exit 0
        fi

        exit 1

        sentinel.conf

        daemonize yes
        port 26379
        protected-mode no
        dir "/opt/redis-4.0.6/sentinel-dir"
        logfile "/opt/redis-4.0.6/sentinel-dir/sentinel26379.log"
        sentinel monitor mymaster 10.33.26.125 6379 2
        sentinel down-after-milliseconds mymaster 3000
        sentinel failover-timeout mymaster 10000
        sentinel parallel-syncs mymaster 1

        sentinel client-reconfig-script mymaster /opt/redis-4.0.6/notify_mymaster.sh

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 日韩精品久久久久久| 青青草国产精品久久久久| 久久久久久九九99精品| 99久久国产综合精品成人影院| 中文字幕在线精品视频入口一区| 国产成人精品福利网站在线观看| 久久精品国产精品亚洲毛片| 久久久99精品成人片中文字幕| 国产92成人精品视频免费| 亚洲精品无码永久在线观看| 精品国产福利第一区二区三区| 亚洲AV无码国产精品色午友在线 | 无码人妻精品一区二区蜜桃百度 | 久久国产精品99国产精| 欧美国产精品久久高清| 国产伦精品一区二区三区视频金莲| 51午夜精品免费视频| 人妻精品久久无码区| 无码人妻一区二区三区精品视频| 国产精品成| 在线精品国产一区二区| 国产精品久久亚洲不卡动漫| 国产精品精品自在线拍| 久热这里只有精品视频6| 一区二区三区精品高清视频免费在线播放| 国产精品五月天强力打造| 丝袜美腿国产精品视频一区| www.99精品| 97久久超碰国产精品2021| 精品久久人妻av中文字幕| 无码精品久久久天天影视| 中文字幕精品久久| 亚洲综合精品网站在线观看| 四虎精品免费永久免费视频| 老年人精品视频在线| 欧美成人精品网站播放| 精品久久久久久久久久中文字幕| 精品第一国产综合精品蜜芽| 久久精品国产黑森林| 日本国产精品久久| 亚洲国产成人精品女人久久久 |