|NO.Z.00015|——————————|^^ 構建 ^^|——|多級負載.V2|-------------------------------------------|7臺server|
阿新 • • 發佈:2022-03-22
[Applications:多級負載.V2] [Applications.LBC&HAC$HPC] [|叢集|多級負載|七層負載|四層負載|多級負載構建|] [LVS-DR(四層)+nginx(七層)+3臺Apache(業務服務)|7臺server]
一、實驗構建
二、10.10.10.14 10.10.10.15 10.10.10.16構建三臺Apache伺服器### --- 系統硬體規劃 ~~~ 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.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)