準備工作
網絡準備
三台機器。
分發器(排程器director)
内網:192.168.8.133 外網:192.168.75.128
real server1(real1)
内網:192.168.8.134 設定網關為: 192.168.8.133
real server2(real2)
内網:192.168.8.135 設定網關為: 192.168.8.133
防火牆
關閉系統防火牆:
[root@real1 ~]# systemctl stop firewalld
[root@real1 ~]# systemctl disable firewalld
關閉SELinux:
[root@director ~]# setenforce 0
[root@director ~]# vim /etc/selinux/config
SELINUX=disabled
注: 分别在三台機器進行上述操作。
以下操作在real1和real2中進行:
安裝iptables服務:
[root@real1 ~]#yum install -y iptables-services
設定iptables服務:
[root@real1 ~]# iptables -F
[root@real1 ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ 确定 ]
說明: 進行該設定的原因是NAT模式是基于防火牆nat表的一種模式,是以會使用iptables規則。
開始搭建
配置director:
安裝ipvsadm工具:
[root@director ~]# yum install -y ipvsadm
配置ipvsadm腳本:
[root@director ~]# vim /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
注意區分網卡名字,adai的兩個網卡分别為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.8.0/24 -j MASQUERADE
director設定ipvsadm規則
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C
#-C=clear,清除規則
$IPVSADM -A -t 192.168.75.128:80 -s rr
#-A:=add,添加規則;-t:=tcp;-s 指定算法;
#在此可以添加-p:指定逾時時間(解決session問題:保證同一請求被分發到同一rs上)
#因為添加-p選項後會影響測試效果,是以在此不加該參數(注:時間不能設定為0)
$IPVSADM -a -t 192.168.75.128:80 -r 192.168.8.134:80 -m -w 1
$IPVSADM -a -t 192.168.75.128:80 -r 192.168.8.135:80 -m -w 1
#-a:=add,增加nat架構中的rs;-r:指定rs的IP;-m:指定LVS模式為NAT(masquerade)
#-w:=weight,指定權重
執行該腳本:
[root@director ~]# sh /usr/local/sbin/lvs_nat.sh
#注:執行該腳本時無錯誤輸出說明沒問題。
檢視ipvsadm規則:
[root@director ~]# 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.75.128:80 rr
-> 192.168.8.134:80 Masq 1 1 3
-> 192.168.8.135:80 Masq 1 0 4
配置rs:
在兩台rs上安裝Nginx,并分别設定其首頁用來區分兩台機器。
[root@real1 ~]# yum install -y nginx
[root@real1 ~]# systemctl start nginx
編輯rs1首頁:
[root@real1 ~]# vim /usr/share/nginx/html/index.html
This is real server 1.