目錄
1、基于 CentOS 7 構建 LVS-DR 群集。
2、配置nginx負載均衡。
1、基于 CentOS 7 構建 LVS-DR 群集。
1.部署LVS負載調度器
1>安裝配置工具
[root@node6 ~]# yum install -y ipvsadm
2>配置LVS虛擬IP(VIP地址)
[root@node6 ~]# ifconfig ens33:200 192.168.111.200 netmask 255.255.255.255 up
3>手工執行配置添加LVS服務并增加兩臺RS
[root@node6 ~]# ipvsadm -A -t 192.168.111.200:80 -s rr
[root@node6 ~]# ipvsadm -a -t 192.168.111.200:80 -r 192.168.111.7:80 -g
[root@node6 ~]# ipvsadm -a -t 192.168.111.200:80 -r 192.168.111.8:80 -g
[root@node6 ~]# 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.111.200:80 rr-> 192.168.111.7:80 Route 1 0 0 -> 192.168.111.8:80 Route 1 0 0 2.部署web服務器(兩臺機器同時部署)
1>安裝web服務器
[root@node7 ~]# yum install -y httpd
2>寫網頁文件
[root@node7 ~]# echo "web is `hostname -I`" > /var/www/html/index.html
[root@node7 ~]# systemctl start httpd
3>在客戶端就行測試
[root@yx ~]# curl 192.168.111.7
web is 192.168.111.7
[root@yx ~]# curl 192.168.111.8
web is 192.168.111.8
4>手工在RS端綁定VIP,并且添加本機訪問VIP的路由
[root@node7 ~]# ifconfig lo:200 192.168.111.200 netmask 255.255.255.255 up
[root@node7 ~]# route add -host 192.168.111.200 dev lo:200
[root@node7 ~]# route -n # 查看路由
5>手工在RS端抑制ARP響應(調整內核參數,關閉arp響應)
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce另一種方法:使用arptables實現抑制arp
[root@node8 ~]# yum install -y arptables
[root@node8 ~]# arptables -A INPUT -d 192.168.111.200 -j DROP
[root@node8 ~]# arptables -A OUTPUT -s 192.168.111.200 -j mangle --mangle-ip-s 192.168.111.8
[root@node8 ~]# arptables -L -n --line-number # 查看
# --line-number 顯示行號
[root@node8 ~]# arptables-save > /etc/sysconfig/arptables
[root@node8 ~]# systemctl enable --now arptables.service3.測試(在客戶端進行測試)
[root@yx ~]# for ((i=1;i<=6;i++))
> do
> curl 192.168.111.200
> done
web is 192.168.111.8
web is 192.168.111.7
web is 192.168.111.8
web is 192.168.111.7
web is 192.168.111.8
web is 192.168.111.7
2、配置nginx負載均衡。
1.準備兩臺后端web服務器(同時進行)
# 把nginx的rpm包上傳至服務器中,然后進行安裝
[root@node7 ~]# yum install -y nginx
[root@node7 ~]# echo "web is `hostname -I`" > /usr/share/nginx/html/index.html
[root@node7 ~]# systemctl start nginx2.負載均衡配置
[root@node6 ~]# yum install -y nginx-1.22.0-1.el7.ngx.x86_64.rpm
[root@node6 ~]# vim /etc/nginx/conf.d/vhost.conf
server {listen 80;server_name www.open.cn;location / {proxy_pass http://web_server;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}
upstream web_server {server 192.168.111.7;server 192.168.111.8;
}
[root@node6 ~]# nginx -t
[root@node6 ~]# systemctl start nginx3.測試
[root@yx ~]# vim /etc/hosts
192.168.111.6 www.open.cn
[root@yx ~]# for ((i=1;i<=6;i++)); do curl www.open.cn; done
web is 192.168.111.7
web is 192.168.111.8
web is 192.168.111.7
web is 192.168.111.7
web is 192.168.111.8
web is 192.168.111.7
?或者在PC端修改主機域名(C:\Windows\System32\drivers\etc/hosts)
192.168.111.6 www.open.cn
# 在瀏覽器上進行域名訪問,訪問的內容刷新之后會進行不斷的變化,如下