LVS的簡單示例(一)
1.使用NAT模型的TCP協議類型的lvs服務負載均衡一個php應用,如Discuz!論壇或者phpMyAdmin;
必要條件:三臺主機(一個調度器兩個服務器)
聲明:172.16.1.11作為調度器,192.168.100.2和192.168.100.3作為服務器
第一步:給調度器配置一個網絡適配器,配置其IP地址為192.168.100.1
第二步:
服務器配置(Real Server即RS):
配置兩個RS的為同一網關:
# route add default gw 192.168.100.1
搭建LAMP來提供php服務:
安裝httpd,php,php-mysql,mariadb-server(mysql-server)
# yum insatll httpd php php-mysql mariadb-server(mysql-server)
RS1:1) 配置虛擬主機:
# cd /etc/httpd/conf.d/
# vim vhost1.conf
<VirtualHost 192.168.100.2:80>
ServerName www.ytc.com
DocumentRoot "/myweb/vhost1"
DirectoryIndex index.php
<Diretory "/myweb/vhost1">
Options None
AllowOverride None
Require all granted
</Diretory>
</VirtualHost>
2) 完善虛擬主機的目錄要求:
# mkdir -pv /myweb/vhost1
# cd /myweb/vhost1/
3)做測試頁面,查看php能否提供服務
# vim index.php
Real Server 1 <dr>
?php>
phpinfo();
?>
4) 開啟httpd服務:
# systemtl start httpd.service
RS2:1) 配置虛擬主機
# cd /etc/httpd/conf.d/
# vim vhost2.conf
<VirtualHost 192.168.100.3:80>
ServerName www.ytc.cn
DocumentRoot "/myweb/vhost2"
DirectoryIndex index.php
<Diretory "/myweb/vhost2">
Options None
AllowOverride None
Require all granted
</Diretory>
</VirtualHost>
2) 完善虛擬主機的目錄要求:
# mkdir -pv /myweb/vhost2
# cd /myweb/vhost2/
3)做測試頁面,查看php能否提供服務
# vim index.php
Real Server 2 <dr>
?php>
phpinfo();
?>
4) 開啟httpd服務:
# systemtl start httpd.service
第三步:調度器配置:
1)開啟核心路由轉發功能:
# echo 1 > /proc.sys/net/ipv4/ip_forward
2) 創建集群服務:
# ipvsadm -A -t 172.16.1.11:80 -s rr(前提安裝ipvsadm:yum install ipvsadm )
3) 向集群中添加RS:
# ipvsadm -a -t 172.16.1.11:80 -r 192.168.100.2:80 -m -w 1
# ipvsadm -a -t 172.16.1.11:80 -r 192.168.100.3:80 -m -w 1
註意:需註意SElinux 和 iptables的幹擾:
我將三臺主機做了如下操作:
# iptables -F
# setenforce 0
配置完畢後:
web端測試:
第一次輸入:172.16.1.11/
第二次輸入:172.16.1.11/
f
測試完後,php可以成功提供服務:
接下來,在RS1和RS2上配置wordpress應用:
將wordpress應用分別傳送到RS1的/myweb/vhost1和RS2的/myweb/vhost2目錄下並解壓:
# tar xf wordpress-4.2-zh_CN.tar.gz
在web端測試:
輸入172.16.1.11/wordpress/index.php
需要註意的是:
1)調度器需要進行會話保持,如果不進行會話保持,登錄則不會成功;
2)RS1和RS2需要進行數據庫共享,不然RS1服務器損壞後,用woedpress時,之前的信息全部丟失,
所以,RS1和RS2需共享存儲;
1):調度器設置會話保持功能:
# ipvsadm -E -t 172.16.1.11:80 -s rr -p 5
2):服務器配置:
開啟MySQL服務,為wordpress創建一個數據庫,並授權用戶登錄wordpress
# systemctl start mariadb.service
MariaDB [(none)]> create database wordpressdb;
MariaDB [(none)]> grant all on *.* to 'wpuser'@'192.168.%.%' identified by '123456';
共享數據庫:
NFS實現:
首先在RS1上創建共享目錄/data並修改其權限:
~]# mkdir /data
~]# chmod 757 /data
編輯/etc/exports文件,聲明共享目錄:
即在文件中添加一行:
/data *(rw,no_root_squash)
開啟NFS服務並查看2049端口是否被監聽:
~]# systemctl start nfs
然後在RS2創建目錄/mydata
~]# mkdir /mydata
將RS1的共享目錄/data掛載到RS2的/mydata下
~]# mount -t nfs 172.16.1.20:/data /mydata
將本地的mysqld服務的數據目錄設置為/mydata:
~]# vim /etc/my.cnf
將datadir設置為/mydata
[mysqld]
datadir=/mydata
把資源放到/mydata下並查看/mydata:
~]# cp -a /var/lib/mysql/* /mydata/
~]# ls /mydata
ibdata1 ib_logfile0 ib_logfile1 mysql mysql.sock test ultrax ytc ytc123 ytc.txt
開啟數據庫服務:
~]# service mysqld start
Starting mysqld: [ OK ]
完成後在web端訪問:
輸入172.16.1.11/
輸入用戶名密碼後:
這樣就可以使用wordpress了;
如
LVS的簡單示例(一)