1. 程式人生 > >第十八章 Linux叢集架構(上)

第十八章 Linux叢集架構(上)

18.1 叢集介紹

18.2 keepalived介紹

18.3 用keepalived配置高可用叢集(上)

準備兩臺機器

一個為mater   另一個為backup

兩臺機器都關閉防火牆

兩臺機器都安裝上nginx,為了下一步實驗用

兩臺機器都安裝keepalived

•yum install -y keepalived

設定vip為100

master上的配置檔案

cat /etc/keepalived/keepalived.conf

global_defs {
   notification_email {
     

[email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.93.100
    }

    track_script {
        chk_nginx
    }

}
master上監控指令碼

/usr/local/sbin/check_ng.sh

#!/bin/bash
#時間變數,用於記錄日誌
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx程序數量
n=`ps -C nginx --no-heading|wc -l`
#如果程序為0,則啟動nginx,並且再次檢測nginx程序數量,
#如果還為0,說明nginx無法啟動,此時需要關閉keepalived
if [ $n -eq "0" ]; then
        systemctl  start nginx
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi
指令碼賦755許可權

systemctl start  keepalived  啟動服務

18.4 用keepalived配置高可用叢集(中)

backup 配置檔案

/etc/keepalived/keepalived.conf

global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.93.100
    }

    track_script {
        chk_nginx
    }

}

監控指令碼

/usr/local/sbin/check_ng.sh
#時間變數,用於記錄日誌
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx程序數量
n=`ps -C nginx --no-heading|wc -l`
#如果程序為0,則啟動nginx,並且再次檢測nginx程序數量,
#如果還為0,說明nginx無法啟動,此時需要關閉keepalived
if [ $n -eq "0" ]; then
        /etc/init.d/nginx start
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

指令碼賦755許可權

systemctl start  keepalived  啟動服務

18.5 用keepalived配置高可用叢集(下)

18.6 負載均衡叢集介紹

18.7 LVS介紹

18.8 LVS的排程演算法

18.9 LVS NAT模式搭建(上)

centos1安裝 ipvsdam

yum install -y ipvsdam

centos1 網絡卡配置

dir 編寫配置指令碼

/usr/local/sbin/lvs_nat.sh

#! /bin/bash
# director 伺服器上開啟路由轉發功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 關閉icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
# 注意區分網絡卡名字,阿銘的兩個網絡卡分別為ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 設定nat防火牆
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.93.0/24  -j MASQUERADE
# director設定ipvsadm
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.188.110:80 -s rr 
$IPVSADM -a -t 192.168.188.110:80 -r 192.168.93.128:80 -m -w 1
$IPVSADM -a -t 192.168.188.110:80 -r 192.168.93.130:80 -m -w 1

18.10 LVS NAT模式搭建(下)

centos2的閘道器設為dir

centos3的閘道器設為dir


課堂串講

18.1 叢集介紹
18.2 keepalived介紹
18.3/18.4/18.5 用keepalived配置高可用叢集

18.1 叢集介紹

  • 叢集根據功能劃分為兩大類:高可用負載均衡
    • 高可用叢集通常為兩臺伺服器,一臺工作,另外一臺作為冗餘,當提供服務的機器宕機,冗餘將接替繼續提供服務
      實現高可用的開源軟體有:heartbeatkeepalived
    • 負載均衡叢集,需要有一臺伺服器作為分發器,它負責把使用者的請求分發給後端的伺服器處理,在這個叢集裡,除了分發器外,就是給使用者提供服務的伺服器了,這些伺服器數量至少為2。實現負載均衡的開源軟體有LVSkeepalivedhaproxynginx,商業的有F5Netscaler

18.2 keepalived介紹

在這裡我們使用keepalived來實現高可用叢集,因為heartbeat在centos6上有一些問題,不太穩定。建議以後使用高可用使用keepalived實現。
keepalived通過VRRP(Virtual Router Redundancy Protocl)來實現高可用。其中文叫虛擬路由冗餘協議。在這個協議裡會將多臺功能相同的路由器(機器)組成一個小組,這個小組裡會有1個master角色和N(N>=1)個backup角色。master會通過組播的形式向各個backup傳送VRRP協議的資料包,當backup收不到master發來的VRRP資料包時,就會認為master宕機了。此時就需要根據各個backup的優先順序來決定誰成為新的mater。
Keepalived主要有三個模組,分別是corecheckvrrp。其中core模組為keepalived的核心,負責主程序的啟動、維護以及全域性配置檔案的載入和解析,check模組負責健康檢查,vrrp模組是來實現VRRP協議的。

18.3/18.4/18.5 用keepalived配置高可用叢集

先準備兩臺機器做高可用叢集 一般使用高可用都是針對機器上的服務的 這裡以Nginx服務為例子,就是針對Nginx來實現高可用 企業上一般會讓Nginx作為負載均衡來使用,當他出現單點故障時,就會導致後端的web機器訪問不了, Nginx使用高可用是很有必要的。
192.168.80.102為master 192.168.80.104為backup

步驟

1.兩臺機器上分別安裝keepalived

1
[[email protected] ~]# yum install -y keepalived

2.兩臺機器上分別安裝好針對的服務,這裡是Nginx

master上之前編譯安裝過Nginx
backup為了區別用master 這裡使用yum安裝

1
2
[[email protected] ~]# yum install -y epel-release
[[email protected] ~]# yum install -y nginx

 

3.master上編輯keepalived配置檔案

我們可以先把自動的配置檔案清空 才自定義編輯

1
2
[[email protected] ~]# > /etc/keepalived/keepalived.conf  ##清空內容
[[email protected] ~]# vim /etc/keepalived/keepalived.conf

 

輸入下面內容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
global_defs {
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 38003800
    }
    virtual_ipaddress {
        192.168.80.66
    }

    track_script {
        chk_nginx
    }

}

 

內容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_keepalived.conf
keepalived配置檔案路徑在/etc/keepalived/keepalived.conf

引數 含義
global_defs 全域性定義
notification_email 出現問題時給郵箱發郵件
notification_email_from 又哪個郵箱發郵件
vrrp_script chk_nginx 檢查Nginx服務是否正常 指定檢查指令碼的路徑
interval 3 檢查間斷為3秒
state MASTER 定義master
interface 指定網絡卡傳送VRRP包
virtual_router_id 定義路由群的id
priority 定義權重
authentication 定義認證
auth_type 認證型別
auth_pass 認證密碼
virtual_ipaddress 定義虛擬ip(vip)此IP用來訪問此虛擬路由群的,就是把master和backup看作一臺機器單個IP
chk_nginx 載入檢查指令碼

4.master上編寫檢查Nginx指令碼

1
[[email protected] ~]# vim /usr/local/sbin/check_ng.sh

輸入下面內容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
#時間變數,用於記錄日誌
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx程序數量
n=`ps -C nginx --no-heading|wc -l`
#如果程序為0,則啟動nginx,並且再次檢測nginx程序數量,
#如果還為0,說明nginx無法啟動,此時需要關閉keepalived
if [ $n -eq "0" ]; then
        /etc/init.d/nginx start
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

 

內容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/master_check_ng.sh
指令碼上systemctl stop keepalived關閉keepalived服務是為了啟動backup上的keepaliveed時候 不會出現“腦裂”現象。即master和backup的keepaliveed各自搶佔資源,如VIP,外部訪問時候出現兩臺機器同個ip。

5.更改檢查指令碼的許可權

1
[[email protected] ~]# chmod 755 /usr/local/sbin/check_ng.sh

6.master上啟動keepalived服務

1
[[email protected] ~]# systemctl start keepalived

測試

master上停止Nginx服務看是否自動開啟

1
2
3
4
5
[[email protected] ~]# service nginx start
Starting nginx (via systemctl):                            [  確定  ]

[[email protected] ~]# ps aux |grep nginx
root      2720  0.0  0.0 112720   964 pts/0    R+   23:19   0:00 grep --color=auto nginx

 

發現沒有啟動Nginx,這裡是防火牆問題

1
2
[[email protected] ~]# setenforce 0
[[email protected] ~]# systemctl stop firewalld

 

現在看到Nginx是自動開啟的

1
2
3
4
5
[[email protected] ~]# ps aux |grep nginx
root      3387  0.0  0.1  45888  1284 ?        Ss   23:22   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody    3391  0.0  0.4  48380  4168 ?        S    23:22   0:00 nginx: worker process
nobody    3392  0.0  0.3  48380  3916 ?        S    23:22   0:00 nginx: worker process
root      3394  0.0  0.0 112720   968 pts/0    R+   23:22   0:00 grep --color=auto nginx

 

ip add檢視VIP

keepalived日誌在/var/log/messages中看到

7.為了讓實驗成功 兩臺機器都關閉防火牆

1
2
[[email protected] ~]# setenforce 0
[[email protected] ~]# systemctl stop firewalld

8.backup上編輯keepalived配置檔案

1
2
[[email protected] ~]# > /etc/keepalived/keepalived.conf
[[email protected] ~]# vim /etc/keepalived/keepalived.conf

輸入下面內容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
global_defs {
   notification_email {
[email protected]
   }
   notification_email_from [email protected]
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/usr/local/sbin/check_ng.sh"
    interval 3
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass aminglinux>com
    }
    virtual_ipaddress {
        192.168.80.66
    }

    track_script {
        chk_nginx
    }

}

 

內容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_keepalived.conf
這裡和master上的不一樣的地方是state BACKUPpriority 90 backup的權重比主少

9.backup上編寫檢查Nginx指令碼

1
[[email protected] ~]# vim /usr/local/sbin/check_ng.sh

輸入下面內容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
#時間變數,用於記錄日誌
d=`date --date today +%Y%m%d_%H:%M:%S`
#計算nginx程序數量
n=`ps -C nginx --no-heading|wc -l`
#如果程序為0,則啟動nginx,並且再次檢測nginx程序數量,
#如果還為0,說明nginx無法啟動,此時需要關閉keepalived
if [ $n -eq "0" ]; then
        systemctl start nginx
        n2=`ps -C nginx --no-heading|wc -l`
        if [ $n2 -eq "0"  ]; then
                echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log
                systemctl stop keepalived
        fi
fi

 

內容在 https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D21Z/backup_check_ng.sh
和主上的區別在於 systemctl start nginx 是由於從機器上使用yum安裝的

10.修改backup上的指令碼許可權並啟動keepalived服務

1
2
[[email protected] ~]# chmod 755 /usr/local/sbin/check_ng.sh
[[email protected] ~]# systemctl start keepalived

測試

master上之前設定了預設虛擬主機 更改主頁內容

backup主頁的地址在/usr/share/nginx/html/index.html 並更改主頁內容

同時檢視vip是載入maser的主頁的

模擬master機器宕機,直接把maser上的keepalied服務給停掉 早看看vip是否給了backup

1
[[email protected] ~]# systemctl stop keepalived

 

留意backup

1
2
3
4
5
6
7
8
9
[[email protected] ~]# ip add
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:71:e1:ca brd ff:ff:ff:ff:ff:ff
    inet 192.168.80.104/24 brd 192.168.80.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.80.66/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7e09:37c4:bc0a:504a/64 scope link
       valid_lft forever preferred_lft forever

 

看到vip已經來到了backup上,再用瀏覽器看看

再把maser上的keepalived啟動 發現vip又回到了主上

1
2
3
4
5
6
7
8
9
10
[[email protected] ~]# systemctl start keepalived

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:06:17:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.80.102/24 brd 192.168.80.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.80.66/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::c25c:7f22:5b19:4d48/64 scope link
       valid_lft forever preferred_lft forever

 

18.6 負載均衡叢集介紹
18.7 LVS介紹
18.8 LVS排程演算法
18.9/18.10 LVS NAT模式搭建

18.6 負載均衡叢集介紹

負載均衡主流開源軟體LVSkeepalivedhaproxynginx等。
其中LVS屬於4層(網路OSI 7層模型),nginx屬於7層,haproxy既可以認為是4層,也可以當做7層使用。
其實keepalived的負載均衡功能其實就是lvs,lvs這種4層的負載均衡是可以分發除80外的其他埠通訊的,比如MySQL的,而nginx僅僅支援http,https,mail,haproxy也支援MySQL這種。但是nginx可以實現根據目錄來區分後端的伺服器等更為靈活的功能。
相比較來說,LVS這種4層的更穩定,能承受更多的請求,而nginx這種7層的更加靈活,能實現更多的個性化需求。

18.7 LVS介紹

LVS是由國人章文嵩開發的。其流行度不亞於apache的httpd,是基於TCP/IP做的路由和轉發,穩定性和效率很高。
LVS最新版本基於Linux核心2.6,有好多年不更新了。
LVS有三種常見的模式:NATDRIP Tunnel
LVS架構中有一個核心角色叫做分發器(Load balance),它用來分發使用者的請求,還有諸多處理使用者請求的伺服器(Real Server,簡稱rs

NAT模式

這種模式藉助iptables的nat表來實現
使用者的請求到分發器後,通過預設的iptables規則,把請求的資料包轉發到後端的rs上去
rs需要設定閘道器為分發器的內網ip
使用者請求的資料包和返回給使用者的資料包全部經過分發器,所以分發器成為瓶頸,一般請求量在10臺以下。
在nat模式中,只需要分發器有公網ip即可,所以比較節省公網ip資源。

IP Tunnel模式

這種模式,需要有一個公共的IP配置在分發器和所有rs上,我們把它叫做vip
客戶端請求的目標IP為vip,分發器接收到請求資料包後,會對資料包做一個加工,會把目標IP改為rs的IP,這樣資料包就到了rs上
rs接收資料包後,會還原原始資料包,這樣目標IP又變回為vip,因為所有rs上配置了這個vip,此時它會認為使用者請求的就是它自己。
這個模式下的rs都會獨立的公網IP來回複用戶的請求,可以減少分發器的壓力。

DR模式

這種模式,也需要有一個公共的IP配置在分發器和所有rs上,也就是vip
和IP Tunnel不同的是,它會把資料包的MAC地址修改為rs的MAC地址
rs接收資料包後,會還原原始資料包,這樣目標IP為vip,因為所有rs上配置了這個vip,所以它會認為是它自己。
此模式下rs配置公網IP來返回使用者請求。

總結

綜上所述,nat模式就是做iptables路由轉發 IP Tunnel模式實際上是更改目標IP DR模式更改目標MAC地址

18.8 LVS排程演算法

名稱 縮寫 含義
輪詢 Round-Robin rr 平均分發使用者請求
加權輪詢 Weight Round-Robin wrr 帶權重的輪詢
最小連線 Least-Connection lc 分發使用者給連線數少的機器上
加權最小連線 Weight Least-Connection wlc 帶權重的最小連線
基於區域性性的最小連線 Locality-Based Least Connections lblc  
帶複製的基於區域性性最小連線 Locality-Based Least Connections with Replication lblcr  
目標地址雜湊排程 Destination Hashing dh  
源地址雜湊排程 Source Hashing sh  

18.9/18.10 LVS NAT模式搭建

準備工作

準備三臺機器 一臺作分發器,兩臺作rs
分發器:kun03 內網:192.168.80.102 外網:192.168.218.128
rs1:kun05 內網:192.168.80.104 閘道器:192.168.80.102
rs2:kun06 內網:192.168.80.105 閘道器:192.168.80.102

kun03上新增外網網絡卡 選擇僅主機模式

編輯外網網絡卡配置

1
2
3
4
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[[email protected] network-scripts]# vim !$
vim ifcfg-ens37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
#UUID=75aabb45-9fbe-45d6-800e-fa2d04f72e13
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.218.128
#GATEWAY=192.168.80.2
NETMASK=255.255.255.0
DNS1=119.29.29.29
1
2
3
[[email protected] network-scripts]# ifdown ens37 && ifup ens37
成功斷開裝置 'ens37'。
連線已成功啟用(D-Bus 活動路徑:/org/freedesktop/NetworkManager/ActiveConnection/3)

可以ping通

kun05和kun06上設定閘道器為192.168.80.102

1
2
3
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

GATEWAY=192.168.80.102

 

1
2
3
4
5
6
7
[[email protected] ~]# systemctl restart network

[[email protected] ~]# route -n   ##檢視閘道器
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.80.102  0.0.0.0         UG    100    0        0 ens33
192.168.80.0    0.0.0.0         255.255.255.0   U     100    0        0 ens33

三臺機器上關閉firewalld

1
2
3
4
5
6
[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# systemctl disable firewalld
[[email protected] ~]# setenforce 0
[[email protected] ~]# vim /etc/selinux/config

SELINUX=disbaled

各自下載iptables 並清空規則和儲存

1
2
3
4
[[email protected] network-scripts]# yum install -y iptables-services
[[email protected] network-scripts]# systemctl start iptables    ##啟動iptables
[[email protected] network-scripts]# iptables -F   ##清空規則
[[email protected] network-scripts]# service iptables save   ##儲存空規則

步驟

1.在分發器上安裝ipvsadm工具

在kun03上

1
[[email protected] ~]# yum install -y ipvsadm

 

ipvsadm工具實現lvs功能

2.在分發器上編輯指令碼

1
[[email protected] ~]# vim /usr/local/sbin/lvs_nat.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#! /bin/bash
# director 伺服器上開啟路由轉發功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 關閉icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
# 注意區分網絡卡名字,阿銘的兩個網絡卡分別為ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 設定nat防火牆
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.80.0/24  -j MASQUERADE
# director設定ipvsadm
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.218.128:80 -s rr -p 3
$IPVSADM -a -t 192.168.218.128:80 -r 192.168.80.104:80 -m -w 1
$IPVSADM -a -t 192.168.218.128:80 -r 192.168.80.105:80 -m -w 1

iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -j MASQUERADE讓同網段的網實現上網
ipvsadm -C清除lvs規則
-A 增加規則
-t 指定分發器外網IP
-s 指定演算法
-p 指定rs上的超時時間
-m 指NAT模式
-w 指定權重

3.執行指令碼

1
[[email protected] ~]# sh /usr/local/sbin/lvs_nat.sh

測試

兩臺rs上安裝Nginx
之前在kun05機器上yum了安裝過Nginx 現在在kun06上安裝

1
2
[[email protected] ~]# yum install -y epel-release
[[email protected] ~]# yum install -y nginx

 

設定兩臺rs的主頁,做一個區分

1
2
3
[[email protected] ~]# vim /usr/share/nginx/html/index.html

kun05

 

1
2
3
4
[[email protected] ~]# > /usr/share/nginx/html/index.html
[[email protected] ~]# vim !$

kun06
1
[[email protected] ~]# service nginx start  ##啟動Nginx

在分發器上使用curl命令訪問公網ip

1
2
3
4
5
6
7
8
[[email protected] ~]# curl 192.168.218.128
kun06
[[email protected] ~]# curl 192.168.218.128
kun05
[[email protected] ~]# curl 192.168.218.128
kun06
[[email protected] ~]# curl 192.168.218.128
kun05

 

使用瀏覽器訪問

ipvsadm -ln 可以檢視ipvsadm分發資料的情況

[[email protected] ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.218.128:80 rr
  -> 192.168.80.104:80            Masq    1      0          6         
  -> 192.168.80.105:80            Masq    1      1          4

擴充套件:

VRRP協議

https://blog.csdn.net/u013920085/article/details/21184143

keepalived郵件告警

http://blog.51cto.com/6764097/1954158

https://blog.csdn.net/HzSunshine/article/details/62052398

LVS 三種模式圖解

http://blog.51cto.com/jiekeyang/1839583

LVS演算法 DH

http://blog.51cto.com/lovvvve/1141713

arp_ignore和arp_announce

https://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html