1. 程式人生 > >LVS的簡單示例(一)

LVS的簡單示例(一)

LVS的簡單示例(一)

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的簡單示例(一)