1. 程式人生 > 其它 >|NO.Z.00015|——————————|^^ 構建 ^^|——|多級負載.V2|-------------------------------------------|7臺server|

|NO.Z.00015|——————————|^^ 構建 ^^|——|多級負載.V2|-------------------------------------------|7臺server|



[Applications:多級負載.V2]                                                                               [Applications.LBC&HAC$HPC] [|叢集|多級負載|七層負載|四層負載|多級負載構建|] [LVS-DR(四層)+nginx(七層)+3臺Apache(業務服務)|7臺server]








一、實驗構建
### --- 系統硬體規劃

~~~     Windows:10.10.10.240:client
~~~     HA-server1:10.10.10.11:LVS-DR
~~~     HA-server2:10.10.10.12:Nginx
~~~     HA-server3:10.10.10.13:Nginx
~~~     HA-server4:10.10.10.14:Apache
~~~     HA-server5:10.10.10.15:Apache
~~~     HA-server6:10.10.10.16:Apache
二、10.10.10.14    10.10.10.15    10.10.10.16構建三臺Apache伺服器
### --- 10.10.10.14    10.10.10.15    10.10.10.16構建三臺Apache伺服器
### --- 啟動10.10.10.14Apache服務並配置網站

[root@server14 ~]# service httpd start
[root@server14 ~]# echo "www.yanqi.com-1" >> /var/www/html/index.html
[root@server14 ~]# curl localhost
www.yanqi.com-1
### --- 啟動10.10.10.15Apache服務並配置網站

[root@server15 ~]# service httpd start
[root@server15 ~]# echo "www.yanqi.com-2" >> /var/www/html/index.html
[root@server15 ~]# curl localhost
www.yanqi.com-2
### --- 啟動10.10.10.16Apache服務並配置網站
[root@server16 ~]# service httpd start
[root@server16 ~]# echo "www.yanqi.cn" >> /var/www/html/index.html
[root@server16 ~]# curl localhost
www.yanqi.cn
三、10.10.10.12 部署nginx
### --- 10.10.10.12部署nginx
### --- 關閉網絡卡的守護程序

[root@server12 ~]# service NetworkManager stop
Stopping NetworkManager daemon:                            [  OK  ]
[root@server12 ~]#  chkconfig NetworkManager off
~~~     將nginx-1.2.6.tar.gz上傳到伺服器中並make部署nginx

[root@server12 ~]# yum install -y pcre pcre-devel zlib zlib-devel
[root@server12 ~]# tar -zxvf nginx-1.2.6.tar.gz 
[root@server12 ~]# useradd -s /bin/nologin -M nginx
[root@server12 ~]# cd nginx-1.2.6
[root@server12 nginx-1.2.6]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
[root@server12 nginx-1.2.6]# make && make install
### --- 修改nginx配置檔案

[root@server12 nginx-1.2.6]# cd /usr/local/nginx/conf/ 
[root@server12 conf]# vim nginx.conf
http {
    #gzip  on;
    upstream yanqi.com {
        server 10.10.10.14:80;
        server 10.10.10.15:80;
    }

    upstream yanqi.cn {
        server 10.10.10.16:80;
    }
    
    server {
        listen       80;
        server_name  www.yanqi.com;
        
        location / {
            proxy_pass http://yanqi.com;                                    // 通過反向代理的方式去訪問
        }
    }
    
    server {
        listen       80;
        server_name  www.yanqi.cn;

        location / {
            proxy_pass http://yanqi.cn;
        }
    }
}
### --- 檢測配置是否OK並啟動nginx

[root@server12 conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful    
[root@server12 conf]# /usr/local/nginx/sbin/nginx                           // 啟動nginx
### --- 配置本地hosts檔案

C:\Windows\System32\drivers\etc\hosts
10.10.10.12    www.yanqi.com
10.10.10.12    www.yanqi.cn
### --- 驗證:

~~~     通過IE瀏覽器訪問http://www.yanqi.com/
~~~     返回結果:發現在www.yanqi.com-1 www.yanqi.com-2 在這兩臺主機之間跳轉,而不能跳轉到www.yanqi.cn
~~~     通過IE瀏覽器訪問http://www.yanqi.cn/ 
~~~     返回結果:發現在www.yanqi.cn ,不管怎麼重新整理,都不會再跳轉到.com地址上。
四、10.10.10.13 部署nginx
### --- 10.10.10.13部署nginx
### --- 關閉網絡卡的守護程序

[root@server13 nginx-1.2.6]# service NetworkManager stop
Stopping NetworkManager daemon:                            [  OK  ]
[root@server13 nginx-1.2.6]#  chkconfig NetworkManager off
~~~     將nginx-1.2.6.tar.gz上傳到伺服器中並make部署nginx

[root@server13 ~]# yum install -y pcre pcre-devel zlib zlib-devel
[root@server13 ~]# tar -zxvf nginx-1.2.6.tar.gz 
[root@server13 ~]# useradd -s /bin/nologin -M nginx
[root@server13 ~]# cd nginx-1.2.6
[root@server13 nginx-1.2.6]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
[root@server13 nginx-1.2.6]# make && make install
### --- 修改nginx配置檔案                                                    // 從10.10.10.12推入配置檔案到10.10.10.13節點

[root@server12 ~]# scp /usr/local/nginx/conf/nginx.conf [email protected]:/usr/local/nginx/conf/nginx.conf
[root@server13 nginx-1.2.6]# cat /usr/local/nginx/conf/nginx.conf           // 檢視配置檔案是否OK
### --- 檢測配置是否OK並啟動nginx

[root@server13 nginx-1.2.6]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server13 nginx-1.2.6]# /usr/local/nginx/sbin/nginx                    // 啟動nginx
### --- 配置本地hosts檔案

C:\Windows\System32\drivers\etc\hosts
10.10.10.13    www.yanqi.com
10.10.10.13    www.yanqi.cn
### --- 驗證:

~~~     通過IE瀏覽器訪問http://www.yanqi.com/
~~~     返回結果:發現在www.yanqi.com-1 www.yanqi.com-2 在這兩臺主機之間跳轉,而不能跳轉到www.yanqi.cn
~~~     通過IE瀏覽器訪問http://www.yanqi.cn/ 
~~~     返回結果:發現在www.yanqi.cn ,不管怎麼重新整理,都不會再跳轉到.com地址。
五、10.10.10.11    配置LVS-DR模式
### --- 負載排程器有後端服務狀態健康監測的一個要求,
### --- 對於nginx來說它是預設自帶了後端服務狀態健康監測的功能;
### --- 說明服務節點有一個死亡,不會造成我們業務中斷。
### --- 在真正的生產環境中再加入LVS的高可用,用Keepalived去做,
### --- 這樣12,13類似的服務死亡,就會自動剔除使用節點,不會造成整個的網路中斷。
### --- 配置網絡卡子介面

[root@server11 ~]# cd /etc/sysconfig/network-scripts/
[root@server11 network-scripts]# cp -a ifcfg-eth0 ifcfg-eth0:0
[root@server11 network-scripts]# vim !$
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.10.100
NETMASK=255.255.255.0
### --- 關閉網絡卡的守護程序
[root@server11 network-scripts]# service NetworkManager stop
Stopping NetworkManager daemon:                            [  OK  ]
[root@server11 network-scripts]# chkconfig NetworkManager off

~~~     啟動網絡卡
[root@server11 ~]# ifup eth0:0
[root@server11 ~]# ifconfig
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:FA:34:71  
          inet addr:10.10.10.100  Bcast:10.10.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
### --- 關閉核心引數,修改網絡卡重定向功能

[root@server11 ~]# vim /etc/sysctl.conf 
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
[root@server11 ~]# sysctl -p                                                // 重新整理核心引數
### --- 安裝Ipvsadm

[root@server11 ~]# yum install -y ipvsadm
### --- 寫入叢集配置
 
[root@server11 ~]# ipvsadm -A -t 10.10.10.100:80 -s rr
[root@server11 ~]# ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.12:80 -g
[root@server11 ~]# ipvsadm -a -t 10.10.10.100:80 -r 10.10.10.13:80 -g
[root@server11 ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ] 
[root@server11 ~]# chkconfig ipvsadm on                                     // 設定開機自動載入
六、10.10.10.12真實伺服器節點
### --- 開啟一個子介面:lo:0

[root@server12 ~]# cd /etc/sysconfig/network-scripts/
[root@server12 network-scripts]# cp -a ifcfg-lo ifcfg-lo:0
[root@server12 network-scripts]# vim !$
DEVICE=lo:0
IPADDR=10.10.10.100
NETMASK=255.255.255.255
NETWORK=127.0.0.0
### --- 修改核心引數

[root@server12 network-scripts]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@server12 network-scripts]# sysctl -p
### --- 啟動lo:0網絡卡

[root@server12 network-scripts]# ifup lo:0
[root@server12 network-scripts]# ifconfig 
lo:0      Link encap:Local Loopback  
          inet addr:10.10.10.100  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
### --- 寫入路由記錄

[root@server12 network-scripts]# route add -host 10.10.10.100 dev lo:0
[root@server12 network-scripts]# echo "route add -host 10.10.10.100 dev lo:0" >> /etc/rc.local              //並設定開機自啟
七、10.10.10.13真實伺服器節點
### --- 開啟一個子介面:lo:0

[root@server13 ~]# cd /etc/sysconfig/network-scripts/
[root@server13 network-scripts]# cp -a ifcfg-lo ifcfg-lo:0
[root@server13 network-scripts]# vim !$
DEVICE=lo:0
IPADDR=10.10.10.100
NETMASK=255.255.255.255
NETWORK=127.0.0.0
### --- 修改核心引數

[root@server13 network-scripts]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
[root@server13 network-scripts]# sysctl -p
### --- 啟動lo:0網絡卡

[root@server12 network-scripts]# ifup lo:0
[root@server12 network-scripts]# ifconfig 
lo:0      Link encap:Local Loopback  
          inet addr:10.10.10.100  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
### --- 寫入路由記錄

[root@server13 network-scripts]# route add -host 10.10.10.100 dev lo:0
[root@server13 network-scripts]# echo "route add -host 10.10.10.100 dev lo:0" >> /etc/rc.local              //並設定開機自啟

八、驗證
### --- 開啟hosts檔案:C:\Windows\System32\drivers\etc\hosts
~~~     通過IE瀏覽器訪問:http://www.yanqi.com/
~~~     返回結果:www.yanqi.com-1    www.yanqi.com-2 在這兩個地址間切換;不會跳到www.yanqi.cn
~~~     通過IE瀏覽器訪問:http://www.yanqi.cn/
~~~     返回結果:www.yanqi.cn 不會跳轉到:www.yanqi.com-1 www.yanqi.com-2 
~~~     此刻使用者入口是LVS,LVS的負載能力比nginx強大很多的。這樣既可以識別域名,又可以達到負載量的增加。

10.10.10.100    www.yanqi.com
10.10.10.100    www.yanqi.cn
### --- 檢視連線數
~~~     以上環境就是:四層+七層的的一個負載均衡真實方案。
~~~     在生產環境中使用的比較少;
~~~     但有助於我們對四層和七層負載的排程方案和功能實現理解的特點
~~~     非常典型的特點。

[root@server11 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  10.10.10.100:80                     5      168        0    40000        0
  -> 10.10.10.12:80                      2       44        0     9359        0
  -> 10.10.10.13:80                      3      124        0    30641        0








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)