LVS (Linux Virtual Server) :Linux虛擬服務器。主要用於負載均衡場景,解決單節點服務器的壓力,提高了容災能力
LVS根據實現的方式不同分爲:LVS-Nat、LVS-Dr、LVS-Tun、LVS-Fullnat
LVS-nat特點:
1.調度器director配置雙網卡,一塊配置外部網絡IP爲VIP,另外一塊網卡爲DIP,必須和後端服務器RS的RIP在同一網絡中,並且RIP的Gateway必須指向DIP
2.請求報文和響應報文都通過Director,因此,如果在較高的負載情況下,Director可能成爲瓶頸
3.客戶端請求資源時做到並不清楚後端主機的情況,因此可以隱藏後端服務器,防止被***
本次實驗的場景是採用LVS-NAT模型搭建一個discuz,一共使用四臺主機,一臺LVS主機提供負載均衡,兩臺LAMP主機提供訪問,一臺NFS提供遠程存儲
LVS-NAT服務器 | LAMP1服務器 | LAMP2服務器 | NFS服務器 |
DIP:192.18.254.122 | RIP1:192.18.254.123 | RIP2:192.18.254.124 | 192.18.254.125 |
VIP:172.18.254.122 |
主機4:作爲NFS服務器
1.啓動NFS服務
systemctl start nfs.service
2.創建一個目錄專門用來遠程共享
mkdir /web/html
3.定義可以訪問此NFS的主機
vim /etc/exports /web/html 192.18.254.123(rw),192.18.254.124(rw)
4.重新導出文件系統
exports -r
5.創建一個用戶並指明UID號
useradd -u 1600 web
6.修改用戶權限,使用戶可以對目錄進行相應操作
setfacl -m u:web:rwx /web/html
主機3:作爲http php mysql 服務器
1.創建一個目錄用來專門掛載NFS
mkdir /hm/html
2.創建和NFS服務器同ID的用戶
useradd -u 1600 web
3.掛載遠端NFS到本地
mount -t nfs 192.18.254.125:/web/html
4.查看掛載狀態是否正常
mount
5安裝http php mysql
yum -y install http php php-mysql mariadb
6.修改http.conf中的配置
ServerName www.discuz.com:80 DocumentRoot "/hm/html"
7.啓動httpd服務
systemctl start httpd.service
8.在 /hm/html 創建一個index.html並且寫入一些字符
echo "httpd test" > /hm/html
9.啓動數據庫
systemctl start mariadb.service mysql_secure_installation
9.以root用戶和密碼進入數據庫創建discuz需要用到的數據庫,遠程登錄的主機
mysql -uroot -p CREATE DATABASE disdb; GRANT ALL ON disdb.* TO 'disuser'@192.18.%.% IDENTIFIED BY 'dis'; FLUSH PRIVILEGES;
10.測試PHP能否連接mariadb。將/hm/html/目錄下的index.index爲index.php
<?php $conn=mysql_connect('172.18.254.124','disuser','dis'); if($conn) echo "ok"; else echo"failure"; ?>
11.登錄瀏覽器輸入主機名查看是否正常
12.下載Discuz到/hm/html/dis目錄下,解壓並創建連接
unzip Discuz_X3.2_SC_UTF8.zip
13.進入/hm/html/Dis/upload/config修改config_global_default.php
vim config_global_default.php
修改其中的 dbhost dbuser dbpw diname
14.修改config下的data uc_server
chmod 777 data chmod 777 uc_server
15.啓動瀏覽器鍵入www.discuz.com/dis一步步安裝完成。
16.修改DocumentRoot
DocumentRoot "/hm/html/dis"
主機2的配置和主機3基本一致
主機1:LVS服務器
1.安裝ipvsadm
yum -y install ipvsadm
2.添加轉發規則
ipvsadm -A -t 172.18.254.122:80 -s rr ipvsadm -a -t 192.18.254.122:80 -r 192.18.254.123:80 -m ipvsadm -a -t 192.18.254.122:80 -r 192.18.254.124:80 -m
3.查看LVS規則表
ipvsadm -Ln
4.開啓路由轉發功能
vim /etc/sysctl net.ipv4.ip_forward = 1 sysctl -p
5.查看防火牆和selinux是否處於關閉狀態
iptables -nvL getenforce
6.打開瀏覽器鍵入 172.18.254.122
注意:
1. 測試LVS的過程中可以在兩臺LAMP的DocumetRoot下的index.php放入不同的內容以便查看是否基於rr進行負載均衡。
2.LVS-NAT中Director需要打開路由轉發功能。
3.NFS服務器需要授對應主機能夠掛載對應目錄,並且客戶端必須有和NFS服務端有同UID的賬戶。