1. 程式人生 > >LVS負載均衡之二:LVS-NAT搭建web群集

LVS負載均衡之二:LVS-NAT搭建web群集

ice 其余 連接方式 rest show MF Oz service 高可用

實現LVS的NAT模式

其原理及特點詳細介紹請看LVS負載均衡之一:LVS-NAT、LVS-DR模式的原理詳細介紹

1.實驗環境

IP地址規劃

客戶端訪問服務的請求IP地址:VIP 12.0.0.1

Server IP 系統
Director Server DIP 192.168.10.1 CentOS7
NFS Server 192.168.10.50 RedHat6
Real Server1 RIP 192.168.10.51 CentOS7
Real Server2 RIP 192.168.10.52 CentOS7

在配置的Director的服務器上添加兩塊網卡,詳細步驟可參考DNS分離解析這篇博文有介紹,設置外網ens37為VIP,內網ens33為DIP,把兩個 real server 的網關設置為 Director 的內網 iP即DIP。

在虛擬機的配置中DIP網絡連接方式設置為僅主機模式,Real Server也配置為僅主機模式。
技術分享圖片

2.安裝和配置

yum安裝軟件

方法一:如果虛擬機網絡是僅主機模式,沒有網絡,可以本地創建yum倉庫,然後進行yum安裝。

方法二:如果虛擬機網絡是NAT模式,有網絡,可以在線yum安裝。

(1) 配置NFS服務器

安裝nfs軟件並啟動nfs服務

yum install nfs-utils -y    #7系統版本需要安裝nfs工具包
service rpcbind start  
service nfs restart

創建共享目錄並賦予寫入權限

mkdir /opt/wwwroot1 /opt/wwwroot2
chmod 777 /opt/wwwroot1 /opt/wwwroot2

編輯配置文件

vim /etc/exports
/opt/wwwroot1 192.168.10.0/24(rw,sync) 
/opt/wwwroot2 192.168.10.0/24(rw,sync) 

發布共享

exportfs -rv

關閉防火墻

service iptables stop
(2) 配置兩個real server服務器

安裝nfs客戶端

yum install nfs-utils -y 
systemctl start rpcbind.service  
systemctl start nfs.service

查看nfs掛載

showmount -e 192.168.10.50

Real Server1掛載nfs

#法一:直接掛載
mount.nfs 192.168.10.50:/opt/wwwroot1 /var/www/html

#法二:修改fatab文件掛載
vim /etc/fstab
  192.168.10.50:/opt/wwwroot1 /var/www/html nfs defaults,_netdev  0 0

Real Server2掛載nfs

方法同Real Server1,將掛載目錄/opt/wwwroot1改成/opt/wwwroot2,其余一樣。

安裝httpd

yum install httpd -y

創建測試網頁並啟動httpd服務

#real server1創建測試網頁
echo "Server 192.168.10.51" > /var/www/html/index.html
#real server2創建測試網頁
echo "Server 192.168.10.52" > /var/www/html/index.html
#啟動httpd服務
systemctl start httpd.service 
systemctl enable httpd.service 

關閉防火墻和安全性策略

systemctl stop  firewalld.service 
systemctl disable firewalld.service
setenforce 0

測試網頁打開是否正常

firefox http://127.0.0.1/

技術分享圖片
技術分享圖片

(3) 配置Director server服務器

安裝ipvsadm管理工具

yum install ipvsadm -y

調用LVS內核模塊

modprobe ip_vs #加載LVS內核模塊
cat /proc/net/ip_vs  #查看ip_vs版本信息

技術分享圖片

開啟路由轉發

#法一:編輯sysctl.conf文件,永久路由轉發
vim /etc/sysctl.conf
  net.ipv4.ip_forward=1
sysctl -p  #保存

#法二:直接編輯,臨時路由轉發
echo "1" > /proc/sys/net/ipv4/ip_forward

配置SNAT轉發規則,設置nat防火墻

iptables -F -t nat      #清空nat防火墻
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j SNAT --to-source 12.0.0.1

Director 上編輯 nat 實現負載分配腳本

# 設置 ipvsadm
vim nat.sh
 #!/bin/bash
 ipvsadm-save  > /etc/sysconfig/ipvsadm   #保存策略
 service ipvsadm start 
 ipvsadm -C     #清除內核虛擬服務器表中的所有記錄
 ipvsadm -A -t 12.0.0.1:80 -s rr  #創建虛擬服務器
 ipvsadm -a -t 12.0.0.1:80 -r 192.168.10.51:80 -m 
 ipvsadm -a -t 12.0.0.1:80 -r 192.168.10.52:80 -m 
 ipvsadm

ipvsadm管理工具的選項用法:

  • -A: 表示添加虛擬服務器
  • -t: 用來指定VIP地址及TCP端口
  • -s: 用來指定負載均衡調度算法
  • -a: 表示添加真實服務器
  • -r: 用來指定RIP地址及TCP端口
  • -m: 表示使用NAT群集模式
  • -g: 表示使用DR群集模式
  • -i: 表示使用TUN群集模式
  • -w: 用來設置權重

保存nat腳本後直接運行

chmod +x nat.sh
./nat.sh

技術分享圖片
查看ipvsadm設置的規則

ipvsadm -ln

技術分享圖片

3.測試LVS群集

用Windows客戶端直接訪問http://12.0.0.1, 將能夠看到由真實服務器提供的網頁內容。

第一次訪問:
技術分享圖片
Real Server連接次數查看:
技術分享圖片
刷新一次:
技術分享圖片
Real Server連接次數查看:
技術分享圖片

LVS-DR模式的案列配置請看LVS負載均衡之三:LVS-DR搭建web群集、LVS結合Keepalived搭建高可用web群集

LVS負載均衡之二:LVS-NAT搭建web群集