LVS+Keepalived+Nginx+Tomcat高可用集羣搭建

        最近公司重整架構,老闆給出十幾臺左右的服務器並且還要儘量節約成本我就谷歌了一下在幾種集羣以前進行比較最終採用了Keepalived+Nginx作負債均衡高可用。雖然以前也研究過集羣,看過不少集羣方面的原理和架構,但畢竟沒有真正操做過如下案例是在虛擬機中完成實驗其實對於高可用搭建來講只用給出Keepalived和Nginx的配置便可後面的一些安裝搭建徹底是本人項目須要能夠不用理睬僅供參考。javascript


        本文只是實驗搭建記錄方便之後在服務器中實施搭建。  css


 架構圖以下
html

    wKiom1mJbzWTAb8SAAE_sPAxHhM073.png-wh_50

前提介紹本案例採用Centos7+Keepalived1.3.5+Tomcat9+Mysql5.6+Redis3.2.8+Rabbitmq3.6.10前端


1、集羣搭建DR模式
java

前端LVS採用主從模式,Nginx爲後端realserver負債均衡。node


服務器環境以下mysql

nginx+LVS_master  192.168.23.14 
nginx+LVS_backup  192.168.23.15
VIP 192.168.23.20    
Tomcat  192.168.23.16 ;192.168.23.17 ;192.168.23.18
redis  192.168.23.21
Mysql  192.168.23.22



一、安裝前調試以及優化linux

  • 安裝centos7選擇默認最小化nginx


  • 中止firewalld運行 c++

systemctl stop firewalld.service
systemctl disable firewalld.service

  • 內核優化vi/etc/sysctl.conf 

##關閉ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
##路由轉發n
et.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
  • 防火牆安裝iptables

yum -y install iptables-services iptables

  • 修改selinux

vi/etc/selinux/config 修改selinux爲disabled
  • 重啓

reboot

二、安裝master和backup

  • 安裝前準備

yum -y install openssl openssl-devel popt popt-devel gcc* wget vim ipvsadm pcre pcre-devel

   運行ipvsadm

   查看內核模塊是否存在

lsmod|grep ip_vs

wKioL1mJF3LSDKMUAAAYhoXj13E035.png

  • 創建data目錄

makdir /data
  • 下載安裝

wget 
tar zxfkeepalived-1.3.5.tar.gz -C /data
 ./configure 
 --prefix=/usr/local/keepalived-1.3.5 
 make && make install
  • 複製keepalived文件和腳本

cp/usr/local/keepalived-1.3.5/sbin/keepalived /usr/sbin/
cp/usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp/usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 
cp/data/keepalived-1.3.5/./keepalived/etc/init.d/keepalived /etc/init.d/
chmod 755/etc/init.d/keepalived
mkdir/etc/keepalived/

  • 配置lvs網卡設置下的vip

#!/bin/bash
# description: Config realserver lo and apply noarp
# chkconfig: 345 80 20
SNS_VIP0=192.168.23.20
. /etc/rc.d/init.d/functions
case "$1" in
start)
       /sbin/ifconfig ens37 down
       /sbin/ifconfig ens37 up
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
       ifconfig ens37:0 $SNS_VIP0 netmask 255.255.255.255 broadcast $SNS_VIP0 up
       /sbin/route add -host $SNS_VIP0 dev ens37:0
       echo "RealServer Start OK"
       ;;
stop)
       ifconfig ens37:0 down
       route del $SNS_VIP0 >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0

  • 重啓網卡

systemctl restart network.service

  • 設置開啓啓動

chkconfig --add keepalived
chkconfig --level 345 keepalived on

  • 設置master /etc/keepalived/文件

! Configuration File for keepalived

global_defs {    #lvs組設置
   router_id LVS1    #id_惟一標識
}
vrrp_instance VI_1 {    #vrrp設置,VI_1自定義名稱
    state MASTER    #master設置,必須大寫
    interface ens33    #網卡設置,綁定vip的子接口,lvs須要綁定在網卡上,realserver綁定在迴環口。區別:lvs對訪問爲外,realserver爲內不易暴露本機信息。
    virtual_router_id 51    #router_id,vrrp惟一標識,一致
    priority 100    #優先級,越大越優先
    advert_int 1    #組播信息發送間隔,兩個節點設置必須同樣
    authentication {    #設置驗證信息,兩個節點必須一致
        auth_type PASS
        auth_pass lmnginx
    }
    virtual_ipaddress {    #設置vip
        192.168.23.20
    }
}
virtual_server 192.168.23.20 80 {    #設置vip鏈接下的realserver
    delay_loop 1    #每1秒檢測迴環口
    lb_algo rr    #設置調度算法爲默認rr輪詢
    lb_kind DR    #設置lvs默認爲DR直接路由模式。建議lvs都是內網ip部署,最後vip用路由器映射到外網,最爲安全!
    protocol TCP    #啓用TCP檢測模式
    real_server 192.168.23.14 80 {    #realserver的ip地址
    weight 1    #權重,最大越高,lvs就越優先訪問。
    TCP_CHECK {    #TCP模式檢測後端鏈接
       connect_timeout 3    #超時3秒
       retry 2    #重連次數2次
       delay_before_retry 3    #重連間隔時間3秒
       connect_port 80    #檢測後端realserver的端口
}
        }
    real_server 192.168.23.15 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
            connect_port 80
          }
     }
}
  • 設置backup /etc/keepalived/文件

! Configuration File for keepalived

global_defs {
   router_id LVS2
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33    
    virtual_router_id 51
    priority 80
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass lmnginx    #與backup的認證密碼
    }
    virtual_ipaddress {
        192.168.23.20
    }
}
virtual_server 192.168.23.20 80 {
    delay_loop 1
    lb_algo rr
    lb_kind DR
    protocol TCP
    real_server 192.168.23.14 80 {
    weight 1
    TCP_CHECK {
     connect_timeout 3
       retry 2
       delay_before_retry 3
       connect_port 80
}
        }
    real_server 192.168.23.15 80 {
        weight 1
        TCP_CHECK {
           connect_timeout 3
            retry 3
            delay_before_retry 3
            connect_port 80
          }
     }
}

  • nginx監控腳本

#!/bin/bash
ip=`ifconfig ens33 |grep "inet" |awk -F " " '{print $2}'`
nginx=`ps -C nginx --no-header |wc -l`
date=`date +%F-%r`
while true
do
if [ $nginx -eq 0 ]; then
        killall keepalived
        echo "$date $ip nginx宕機" |/bin/mail -s "$ip" mynamelim@163.com >/dev/null 2>&1
fi
sleep 1h
done
  • sleep 1h 設置每小時發送一次while ture執行正確爲止後退出使用後臺運行

nohup ./nginx >/dev/null 2>&1 &


  • 附mail設置

  • 安裝mail

yum -y install mailx
  • 設置mail文件

vim /etc/mail.rc
set from=***@163.com你的郵箱名建議和帳號一致 smtp=smtp.163.com 郵箱的stmp服務器
set smtp-auth-user=***@163.com你的郵箱帳號 smtp-auth-password=password你的郵箱密碼這個密碼是stmp認證用戶的密碼不懂能夠百度 smtp-auth=login 肯定登錄

三、nginx編譯安裝

  • 安裝依賴包

yum install -y vim wget lsof gcc gcc-c++ bzip2 net-tools bind-utilszlib-devel openssl-devel libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed
  • 建立nginx用戶

groupadd nginx
useradd -s /sbin/nologin -g nginx -M nginx
  • 安裝Pcre

  • 下載 wget http://www.pcre.org/pcre-8.41.tar.gz

cd /data
tar zxf pcre.tar.gz
./configure --prefix=/usr/local/pcre &&make && make install
  • 安裝openssl

  • 下載安裝

wget https://www.openssl.org/source/openssl-1.1.0f.tar.gz
cd /data
tar zxf openssl.tar.gz
./config --prefix=/usr/local/openssl &&make && make install

  • 安裝zlib

  • 下載安裝

wget www.zlib.net/zlib-1.2.11.tar.gz
cd /data
tar zxf zlib.tar.gz
./configure --prefix=/usr/local/zlib &&make && make install
  • 建立目錄

mkdir -p /var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi}
mkdir /var/log/nginx
mkdir /etc/nginx
  • 安裝nginx

  • 下載安裝

wget  
./configure 
--prefix=/usr/local/nginx--sbin-path=/usr/sbin/nginx
--conf-path=/etc/nginx/nginx.conf 
--error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log 
--lock-path=/var/lock/nginx.lock--user=nginx 
--group=nginx 
--with-http_ssl_module 
--with-http_dav_module 
--with-http_flv_module 
--with-http_realip_module 
--with-http_addition_module 
--with-http_xslt_module 
--with-http_stub_status_module 
--with-http_sub_module 
--with-http_random_index_module 
--with-http_degradation_module 
--with-http_secure_link_module 
--with-http_gzip_static_module 
--with-http_perl_module 
--with-http_v2_module 
--with-threads 
--with-stream--with-stream_ssl_module 
--with-pcre=/data/pcre=8.41.n"sp;
--with-zlib=/data/zlib-1.2.11 
--with-openssl=/data/openssl-1.1.0f 
--with-file-aio --with-mail 
--with-mail_ssl_module 
--http-client-body-temp-path=/var/tmp/nginx/client_body 
--http-proxy-temp-path=/var/tmp/nginx/proxy 
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi 
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi 
--http-scgi-temp-path=/var/tmp/nginx/scgi 
--with-ld-opt="-Wl,-E"
make && make install
  • 配置realserver迴環口下的的vip

#!/bin/bash
# description: Config realserver lo and apply noarp
# chkconfig: 345 80 20
SNS_VIP0=192.168.23.20
. /etc/rc.d/init.d/functions
case "$1" in
start)
       /sbin/ifconfig lo down
       /sbin/ifconfig lo up
       echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
       ifconfig lo:0 $SNS_VIP0 netmask 255.255.255.255 broadcast $SNS_VIP0 up
       /sbin/route add -host $SNS_VIP0 dev lo:0
       echo "RealServer Start OK"
       ;;
stop)
       ifconfig lo:0 down
       route del $SNS_VIP0 >/dev/null 2>&1
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
       echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
       echo "RealServer Stoped"
       ;;
*)
       echo "Usage: $0 {start|stop}"
       exit 1
esac
exit 0
  • 配置nginx

  • 實現靜動分離和負債均衡

user  nginx;
worker_processes  auto;
events {
    worker_connections  65535;
    #使用epoll模塊加強性能
    use epoll;
    #打開文件描述符(緩存有用)
    multi_accept on;
}
http {
    #隱藏nginx版本號
    server_tokens off;
    #指定nginx配置的軟連接
    include       mime.types;
    include     conf.d/*;
    #默認文件類型
    default_type  text/html;
    #日誌格式默認
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for" "$request_time"';
    #開啓高效的文件傳輸模式
    sendfile        on;
    #鏈接超時後重置鏈接,減小等待
    reset_timedout_connection off;
    #限制鏈接,zone自定義
    limit_conn_zone $binary_remote_addr zone=addr:5m;
    #限制鏈接數每一個用戶最大打開100次
    limit_conn addr 100;
    #默認一個一個發,這裏爲發送因此頭部文件
    tcp_nopush     on;
    #不緩存數據
    tcp_nodelay on;
    #字符集
    charset UTF-8;
    #鏈接超時(秒)
    keepalive_timeout  65;
    #開啓壓縮
    gzip  on;
    gzip_proxied any;
    gzip_min_length 1000;
    gzip_comp_level 4;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    #設置訪問頭部
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #設置緩存
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    proxy_connect_timeout 75; 
    proxy_read_timeout 300;  
    proxy_send_timeout 300;  
    proxy_buffer_size 16k;  
    proxy_buffers 4 64k;  
    proxy_busy_buffers_size 128k;  
    proxy_temp_file_write_size 128k;  
    proxy_temp_path /data/temp_path;
    proxy_cache_path /data/cache_path levels=1:2 keys_zone=cache_one:200m inactive=5d max_size=30g;
    #設置負債均衡
    upstream www.limeng.com {
    server 192.168.23.16;
    server 192.168.23.17;
    server 192.168.23.18;
    #設置nginx鏈接tomcat之間得鏈接爲長鏈接。此設置默認關閉,致使nginx與tomcat得time_wait短暫,形成資源浪費,keepalive默認單位秒,官方建議16不可大不可小。
    keepalive 16
}
server {
        listen       80;
        server_name limeng;
        index  index.html index.htm index.jsp index.do;
        #默認代理本機默認頁面
        location / { 
                proxy_pass http://www.limeng.com;
        } 
        #設置緩存策略
        location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ 
        {
            root /usr/local/nginx/ROOT;
            if (-f $request_filename) {
            expires 1d;
            break;
            }
            proxy_cache_key '$host:$server_port$request_uri';#緩存服務和路徑
            proxy_redirect off;
            proxy_cache cache_one;#緩存的zone名
            proxy_cache_valid 200 302 1h; #緩存200和302時間1小時
            proxy_cache_valid 301 1d;#緩存301時間爲1天
            proxy_cache_valid any 1m; #其餘緩存爲1個月
            expires 7d;
        }  
        #設置其餘未緩存策略  
         location ~ .*$(jsp|do)
       {
            #設置長鏈接策略,nginx默認爲http1.0,而tomcat默認爲http1.1 。
            proxy_http_version 1.1;
            proxy_set_header Connection "";
            proxy_pass http://www.limeng.com
            if (-f $request_filename) {
            expires 1d;
            break;
            } 
        }
        #禁止nginx訪問tomcat的關鍵目錄
       location ~ ^/(WEB-INF|META-INF)/{
                deny all;
        }
        #默認的訪問代碼
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

注倆臺nginx配置同樣

  • nginx啓動腳本自行谷歌

chmod 755 /etc/init.d/nginx
  • 啓動nginx

/etc/init.d/nginx start

Nginx安裝完成


四、後端web服務器Tomcat安裝

  • jdk安裝

    安裝前準備

yum -y install gcc*wget vim

    檢查命令

java -version
java -version

     卸載

rpm -e --nodeps jdk

wKioL1mJH-jDZw1JAAAcxp1AguM432.png

    解壓安裝

wget http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-8u144-linux-x64.tar.gz?AuthParam=1502180263_4da80e17ef2af74cdbd6c02a779d1db6
tar -zxvf jdk-8u144-linux-x64.tar.gz

    移動目錄

mv ./jdk1.8.0_121/usr/local/java/

    最後再刪除安裝文件

rm -rf jdk-8u144-linux-x64.gz

    配置環境變量

vi /etc/profile加入如下變量
exportJAVA_HOME=/usr/local/java/
exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
exportPATH=$PATH:$JAVA_HOME/bin

    加載變量

source /etc/profile

  • tomcat安裝

    解壓

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M22/bin/apache-tomcat-9.0.0.M18.tar.gz
tar -zxvf apache-tomcat-9.0.0.M18.tar.gz

    解壓完整後刪除安裝包

rm -rf apache-tomcat-9.0.0.M18.tar.gz

    移動目錄

mkdir /usr/local/tomcat/
mv ./apache-tomcat-9.0.0.M18//usr/local/tomcat/

    首先咱們來配置一下tomcat的環境變量和內存設置進入tomcat的bin目錄後經過vim命令打開catalina.sh文件並在其中加入以下配置>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

xms:初始化內存。

xmx:最大內存,通常爲物理機的1/4。(和xms同樣爲了防止內存溢出)

xmn:tomcat最小內存,通常爲xmn的一半的值。

JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -Xmn512m  
-XX:SurvivorRatio=10 
-XX:MaxTenuringThreshold=15 
-XX:NewRatio=2 
-XX:+DisableExplicitGC"
export TOMCAT_HOME=/tmp/tomcat/apache-tomcat-9.0.0.M18
export CATALINA_HOME=/tmp/tomcat/apache-tomcat-9.0.0.M18
export JRE_HOME=/tmp/java/jdk1.8.0_121
export JAVA_HOME=/tmp/java/jdk1.8.0_121

server.xml優化配置 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

maxThreads:tomcat最大線程組。

minSpareThreads:tomcat初始線程值。

maxSpareThreads:tomcat空閒線程,超過這個線程將關閉無用線程值。

acceptCount:當全部可使用的處理請求的線程數都被使用時,能夠放處處理隊列中的請求數,超過這個數的請求將不予處理。

    <Connector port="8080" protocol="HTTP/1.1"
               maxThreads="8000"
               minSpareThreads="2000"
               maxSpareThreads="1000"
               acceptCount="1000"
               URIEncoding="utf-8"
               server="Neo App Srv 1.0"
               connectionTimeout="20000"
               redirectPort="8443" />

啓動

./startup.sh


五、mysql安裝配置

  • 安裝前準備

yum -y install makegcc cmake bison-devel ncurses-devel libaio libaio-devel per-Data-Dumpernet-tools gcc* wget vim autoconf

    查看是否有mysql的rpm包

rpm -qa |grep mysql
rpm -e --nodeps mysql

    查看是否有mariadb-libs的rpm包

rpm -qa |grep mariadb-libs
yum -y install mariadb-libs
  • 解壓文件

wget https://www.mysql.com/downloads/mysql-5.6.23.tar.gz
tar -zxf /data/mysql-5.6.23.tar.gz

    編譯安裝

cmake 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DSYSCONFDIR=/etc 
-DWITH_MYISAM_STORAGE_ENGINE=1 
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_MEMORY_STORAGE_ENGINE=1 
-DWITH_READLINE=1 
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock 
-DMYSQL_TCP_PORT=3306 
-DENABLED_LOCAL_INFILE=1 
-DWITH_PARTITION_STORAGE_ENGINE=1 
-DEXTRA_CHARSETS=all 
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci
make &&make install
  • 創建用戶和組

groupadd mysql
useradd mysql -s/sbin/nologin -g mysql

    給權限

chown -Rmysql:mysql /usr/local/mysql/

    mysql下的初始化

/usr/local/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql/

       拷貝配置文件my.cnf

cd support-files/
cp my-default.cnf /etc/my.cnf
  • 配置mysql

[client]
port=3306  
socket=/var/lib/mysql/mysql.sock
#socket線程,建議設置,若是設置爲默認,意外重啓後可能會報錯。
[mysql]
no-auto-rehash
#啓動條件,優化啓動時間。
[mysqld]
user=mysql
port=3306
basedir=/usr/local/mysql
#mysql主目錄
datadir=/var/lib/mysql
#mysql數據目錄
open_files_limit=10240
#打開文件數
back_log=600
#TCP/IP鏈接監聽隊列大小,默認80
max_connections = 3000
#最大進程鏈接數,默認151
external-locking = FALSE
#避免外部鎖定,默認開啓
max_allowed_packet = 32M
#設置網絡傳輸一次消息的最大,默認爲4M
thread_cache_size = 300
#配置服務器線程的緩存值,爲M
key_buffer_size = 2048M
#批定用於索引的緩衝區大小
read_rnd_buffer_size = 16M
#MySql的隨機讀(查詢操做)緩衝區大小,儘可能適當設置該值,以免內存開銷過大
bulk_insert_buffer_size = 64M
#批量插入數據緩存大小,默認爲8M
innodb_buffer_pool_size = 2048M
#這對Innodb表來講很是重要,設置它高達 70-80% 的可用內存。
skip-name-resolve
#跳過域名
#skip-innodb
#不使用innodb引擎,5.5默認使用innodb,性能優越。
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If&n`sp;xou need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mysql_error.log
pid-file=/var/run/mysql/mysql.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
  • 添加變量

echo "exportPATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

    添加開機啓動

cp/usr/local/mysql/./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x/etc/init.d/mysqld
chkconfig --addmysqld
chkconfig mysqld on

    啓動mysql

systemctl startmysqld.service

    查看端口

netstat -anpt |grepmysql

wKioL1mJRwCjmEMmAAARiuR5c34493.png

編輯etc下的my.cnf文件

設置mysql密碼

mysqladmin -uroot password


6、redis安裝

  • 解壓安裝

wget https://redis.io/download/redis-3.2.8.tar.gz
tar -zxf /data/redis-3.2.8.tar.gz
cd redis-3.2.8
make PREFIX=/usr/local/redis install
  • 執行完進入目錄/usr/local/redis

    創建文件夾並拷貝

mkdir /etc/redis
cp -rf /data/redis-3.2.8/redis.conf /etc/6379.conf
  • 編輯配置文件vim/etc/redis/6379.conf

daemonize yes
bind 192.168.23.21 127.0.0.1 (連接ip和本地
logfile "/var/log/redis.log"(自定義)
databases 16 (默認數據庫數量
dbfilename dump.rdb 默認存儲名
dir/tmp/redis/data/redisdata 默認數據存放目錄
requirepass password (本身設置redis的密碼)
  • 啓動redis

./redis_server /usr/local/redis/redis.conf

7、rabbitmq安裝

  • 安裝前準備

yum -y install makegcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
  • 解壓 zlang

tar -zxf /data/otp_src_19.3.tar.gz
cd otp_src_19.3

    編譯安裝

./configure 
--prefix=/usr/local/erlang 
--with-ssl 
-enable-threads 
-enable-smmp-support 
-enable-kernel-poll 
--enable-hipe 
--without 
-javac 
make && make install
  • 安裝rtabbitmq

wget 鑤tp:o/wuw.rabbitmq.com/download.html/rabbitmq-server-generic-unix-3.6.10.tar.xz
tar -xf rabbitmq-server-generic-unix-3.6.10.tar.xz

    移動位置

mv rabbitmq_server-3.6.10/ /usr/local/rabbitmq-3.6.10/
cd rabbitmq-3.6.10/sbin

    啓動rabbitmq

./rabbitmq-plugins enabler abbitmq_management
./rabbitmq-server -detached後臺啓動

    中止

./rabbitmqctl stop

    查看程序和端口運行狀態

ps aux |grep rabbitmq
netstat -anpt |grep 15672

wKioL1mJeVjDh_JEAAAGMb4ae8M518.png     

    添加帳戶並設置爲管理員

./rabbitmqctl add_user admin password
./rabbitmq set_tagsadmin administrator

    刪除默認用戶guest

./rabbitmqctl delete_user guest

    查看設置用戶是否存在

./rabbitmqctl list_users

2、測試集羣

  • 在界面打開瀏覽器測試訪問192.168.23.20以下

    期間不斷的刷新會出現不一樣的後端web頁面。

wKiom1mJVzDQzXQ3AAAaWe_kadQ829.png

wKiom1mJVzDiN_dEAAAYcKhNytU949.png









wKioL1mJV6SyigX8AAAVQCS6-6g198.png

  • 關閉master測試訪問正常backup接替工做

systemctl stop keepalived

wKiom1mJXLfhPxvfAAAbEDCSAEI874.png

相關文章
相關標籤/搜索