centos7lvs環境搭建 使用vm虛擬機
准備:3台虛擬機
一台作為lvs的主機(負載均衡服務器)
另外兩台作為真實服務器
lvs主機需要做的事:
配置網卡:
第一步:首先ifconfig查看網卡信息,並配置一塊虛擬網卡,供訪問
命令:ifconfig會顯示如下圖紅框圈中的內容,ens33:8 是我給這該主機配置的一塊新的網卡,這塊網卡可以被虛擬機的網絡訪問到
添加網卡的命令 ifconfig ens33:8 192.168.59.100/24 我的虛擬網絡是192.168.59.0這個網段,大家可以根據自己的情況去配置,其中192.168.59.100就是vip

第二步:配置lvs
yum install ipvsadm 安裝ipvsadm
ipvsadm -A -t 192.168.59.100:80 -s rr 配置服務模式rr代表的是輪循模式
ipvsadm -a -t 192.168.59.100:80 -r 192.168.150.135 -g -w 1
ipvsadm -a -t 192.168.59.100:80 -r 192.168.150.136 -g -w 1
把兩台真實服務器提供給lvs,我這里兩台真實服務器的地址是135和136,大家配置可以根據自己真實服務器的ip地址去配置
ipvsadm -ln //可以查看配置的情況,如下圖便配置完畢

真實服務器需要做的事:
第一步:修改通告級別
以下為兩個配置文件參數代表含義
arp_ignore:
定義接收到ARP請求時的響應級別
0:只要本地配置有相應的地址就給予回應
1:僅在請求的目標MAC地址配置請求到達的接口上的時候給予回應
arp_announce:定義將自己地址向外通告的通告級別
0:將本地任何接口上的任何地址向外通告
1.試圖僅向目標網絡通告與其網絡匹配的地址
2.僅向本地接口上地址匹配的網絡進行通告
實操修改
注:不能使用vim去修改參數,必須使用echo重定向去修改,修改之后立馬生效
echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
第二步:新增網卡
新增網卡放在環衛網卡上,實現隱藏vip 把192.168.59.100配置給真實服務器用於數據傳遞時的接受。
原理:所有的數據包都是傳遞給lv服務器的,所有數據包的目標地址就是vip,在這里就是192.168.59.100,如果我們不配置該虛擬網卡,當135/136的服務器接受到lvs傳過來的數據包,他會和自己路由表中的掩碼作與運算找不到合適的路由條目,數據包就會被丟棄,如圖圈中的就是我們要配置的網卡
配置命令:ifconfig lo:3 192.168.50.100 netmask 255.255.255.255
注:這里必須是4個255,不然同一網段的下的網絡也能通過該路由條目訪問到

第三步:安裝httpd用於顯示信息
注:centos7中啟動和關閉服務是使用 systemctl start /systemctl stop,且需要先關閉防火牆systemctl stop firewalld.
yum install httpd 安裝
systemctl start httpd啟動服務
vim /var/www/html/index.html 新增網頁信息
填入信息:真實服務器1 用於區別不同的服務器
然后用我們電腦本身的瀏覽器去訪問192.168.59.100就能看真實服務器1這樣的信息(你填寫的信息)
注:一般情況下按f5會在不同的真實服務器來回負載,但是也會出現一直刷新一直不變得情況,這是因為如下情況:
先使用 netstat -lnc查看 出現如下的狀態信息
ESTABLISHED狀態
ESTABLISHED的意思是建立連接。表示兩台機器正在通信。
這是因為http 1.1 默認開啟了keepAlive on找到配置文件修改為 keepAlive off
命令:vim /etc/httpd/conf/httpd.conf 找個空白處增加 keepAlive off,保存重啟服務器 systemctl reastart httpd
就可以再去按f5刷新,就會在不同的服務器之間來回切換了