天天看點

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

需求說明

搭建LAMP平台部署應用discuz,要求如下:

1、為了減輕單個伺服器壓力,部署兩台WEB伺服器,使用LVS-DR模式對伺服器實作負載均衡。

2、将MySQL伺服器和AP進行分離,兩台AP通路同一台Mysql伺服器,實作資料庫資料一緻性。

3、AP的網頁檔案都存儲在NFS共享存儲上,實作網頁檔案一緻性。

架構缺陷:

LVS單點,Mysql單點,NFS單點,交換機單點,這些裝置一旦有一個出現問題,就會導緻網站通路出錯;當然也有很多解決方法,如LVS可以lvs+keeplive避免單點,Mysql可以做主從同步,NFS可以做分布式檔案系統,交換機可以做備援鍊路。這些會在後期博文,給出文章。

實驗拓撲

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

部署NFS

安裝NFS,系統預設自帶

[[email protected] ~]# rpm -qa | grep nfs
nfs-utils-1.2.3-54.el6.x86_64
nfs-utils-lib-1.1.5-9.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64      

設定NFS共享,這個共享的目錄以後就是存放web頁面檔案的地方,而且需要保證使用者有寫權限。

[[email protected] ~]# mkdir /LAP
[roo[email protected] ~]# vim /etc/exports
/LAP 172.16.4.101(rw) 172.16.4.102(rw)      

啟動nfs,驗證共享

[[email protected] ~]# service nfs start
[[email protected] ~]# showmount -e 172.16.4.136
Export list for 172.16.4.136:
/LAP 172.16.4.102,172.16.4.101      

用戶端挂載

[[email protected] ~]# mount -t nfs 172.16.4.136:/LAP /var/www/html/
[[email protected] ~]# mount -t nfs 172.16.4.136:/LAP /var/www/html/      

檢視是否挂載

[[email protected] ~]# df -h
172.16.4.136:/LAP      20G 285M   19G   2% /var/www/html
[[email protected] ~]# df -h
172.16.4.136:/LAP      20G 285M   19G   2% /var/www/html      

部署Mysql

安裝Mysql

[[email protected] ~]# yum -y install mysql-server      

啟動Mysql

[[email protected] ~]# service mysqld start
[[email protected] ~]# netstat -lnt | grep :3306
tcp       0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      

部署LAP

Centos6.6已經内置了httpd是以無需安裝,安裝Mysql是php依賴Mysql,但是Mysql不許要啟動

[[email protected] ~]# yum -y install php php-mysql mysql  mysql-server
[[email protected] ~]# yum -y install php php-mysql mysql mysql-server      

設定完成啟動httpd服務即可,其他都無需配置LAMP平台就搭建好了

[[email protected] ~]# service httpd start
[[email protected] ~]# service httpd start      

驗證httpd連接配接php

在NFS服務設定測試頁面

[[email protected] ~]# vim /LAP/index.php
<?php
phpinfo();
?>      
LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

測試連接配接Mysql

Mysql設定root允許遠端連接配接

mysql> GRANT ALL PRIVILEGES ON *.* TO'root'@'172.16.%.%';
mysql> flush privileges;      

nfs建立測試頁面

[[email protected] ~]# vim /LAP/index.php
<?php
 $conn=mysql_connect('172.16.4.136','root','');
  if ($conn)
   echo "連接配接資料庫成功";
  else
   echo "連接配接資料庫失敗"
?>      

分别通路兩台WEB伺服器都可以正常連接配接Mysql

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR
LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

LAMP平台準備ok就可以部署discuz了

部署Discuz

建立Discuz資料庫和連接配接使用者

mysql> create database bbsdb;
mysql> GRANT all ON bbsdb.* TO'runbbs'@'172.16.4.101' IDENTIFIED BY 'adm123';
mysql> GRANT all ON bbsdb.* TO'runbbs'@'172.16.4.102' IDENTIFIED BY 'adm123';
mysql> flush privileges;      

将Discuz安裝的網頁檔案放到NFS共享目錄

[[email protected] ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip -dDiscuz
[[email protected] ~]# mv Discuz/upload/* /LAP/      

随便輸入LAP中的一個ip位址,url後面+install就可以安裝了

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

解決問題:

[[email protected] ~]# vim /etc/php.ini
short_open_tag = ON
[[email protected] ~]# scp /etc/[email protected]:/etc/php.ini      

設定完成重新開機web伺服器

又有了一個寫權限問題,如下圖所示

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

由于NFS的權限是更具使用者id進行驗證的,而MN的apache和LAP1,LAP2的apache使用者id一緻,是以直接對apache使用者進行授權寫操作。

[[email protected] LAP]# setfacl -m u:apache:rwx./config.inc.php ./p_w_uploads/  ./forumd
ata/ ./forumdata/cache/ ./forumdata/templates/  ./forumdata/threadcaches/ ./foru
mdata/logs/ ./uc_client/data/cache/      

如果檢測都沒有x号就可以繼續了

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

設定資料庫相關資訊,需要正确填寫資料庫的位址,使用者名和密碼才可以安裝。

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

安裝完成出現的界面

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

剛才安裝是在172.16.4.101安裝完成的,在172.16.4.102沒有進行安裝,但是由于NFS共享的原因,在4.101安裝完成的時候,NFS的檔案也就進行修改,是以通路4.102的時候,就是通路安裝好的檔案。

LVS負載均衡LAMP平台需求說明實驗拓撲部署NFS部署Mysql部署LAP部署Discuz部署LVS-DR

部署LVS-DR

排程器設定

安裝ipvsadm

[[email protected] ~]# yum -y install ipvsadm      

設定vip位址

[[email protected] ~]# ifconfig eth0:0 172.16.4.1 netmask255.255.255.255 up
[[email protected] ~]# ifconfig | grep 172.16.4.1
         inet addr:172.16.4.100 Bcast:172.16.255.255 Mask:255.255.0.0
         inet addr:172.16.4.1 Bcast:172.16.4.1 Mask:255.255.255.255      

配置負載均衡政策

[[email protected] ~]# ipvsadm -A -t 172.16.4.1:80 -s rr
[[email protected] ~]# ipvsadm -a -t 172.16.4.1:80 -r172.16.4.101 -g -w 1
[[email protected] ~]# ipvsadm -a -t 172.16.4.1:80 -r172.16.4.102 -g -w 1 
[[email protected] ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP 172.16.4.1:80 rr
  ->172.16.4.101:80              Route   1     0          0        
  ->172.16.4.102:80              Route   1     0          0      

LAP1設定

[[email protected] ~]# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
[[email protected] ~]# ifconfig lo:0 172.16.4.1 broadcast172.16.4.1 netmask 255.255.255.255 up
[[email protected] ~]# ifconfig | grep 172.16.4.1
         inet addr:172.16.4.101 Bcast:172.16.255.255 Mask:255.255.0.0
         inet addr:172.16.4.1 Mask:255.255.255.255
[[email protected] ~]# route add -host 172.16.4.1 dev lo:0      

LAP2設定

[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
[[email protected] ~]# echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
[[email protected] ~]# echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
[[email protected] ~]# echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
[[email protected] ~]# ifconfig lo:0 172.16.4.1 broadcast172.16.4.1 netmask 255.255.255.255 up
[[email protected] ~]# ifconfig | grep 172.16.4.1
         inet addr:172.16.4.102 Bcast:172.16.255.255 Mask:255.255.0.0
         inet addr:172.16.4.1 Mask:255.255.255.255
[[email protected] ~]# route add -host 172.16.4.1 dev lo:0      

設定完成就可以使用vip位址通路bbs了。

轉載于:https://blog.51cto.com/ximenfeibing/1656184