阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

LAMP平台LVS负载均衡

132次阅读
没有评论

共计 6783 个字符,预计需要花费 17 分钟才能阅读完成。

需求说明
搭建 LAMP 平台部署应用 discuz,要求如下:

1、为了减轻单个服务器压力,部署两台 WEB 服务器,使用 LVS-DR 模式对服务器实现负载均衡。

2、将 MySQL 服务器和 AP 进行分离,两台 AP 访问同一台 Mysql 服务器,实现数据库数据一致性。

3、AP 的网页文件都存储在 NFS 共享存储上,实现网页文件一致性。

架构缺陷:

LVS 单点,Mysql 单点,NFS 单点,交换机单点,这些设备一旦有一个出现问题,就会导致网站访问出错;当然也有很多解决方法,如 LVS 可以 lvs+keeplive 避免单点,Mysql 可以做主从同步,NFS 可以做分布式文件系统,交换机可以做冗余链路。这些会在后期博文,给出文章。

实验拓扑

LAMP 平台 LVS 负载均衡

部署 NFS
安装 NFS,系统默认自带

[root@MN ~]# 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 页面文件的地方,而且需要保证用户有写权限。

[root@MN ~]# mkdir /LAP
[root@MN ~]# vim /etc/exports
/LAP 172.16.4.101(rw) 172.16.4.102(rw)

启动 nfs,验证共享

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

客户端挂载

[root@LAP-1 ~]# mount -t nfs 172.16.4.136:/LAP /var/www/html/
[root@LAP-2 ~]# mount -t nfs 172.16.4.136:/LAP /var/www/html/

查看是否挂载

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

部署 Mysql
安装 Mysql

[root@MN ~]# yum -y install mysql-server

启动 Mysql

[root@MN ~]# service mysqld start
[root@MN ~]# 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 不许要启动

[root@LAP-2 ~]# yum -y install php php-mysql mysql  mysql-server
[root@LAP-1 ~]# yum -y install php php-mysql mysql mysql-server

设置完成启动 httpd 服务即可,其他都无需配置 LAMP 平台就搭建好了

[root@LAP-1 ~]# service httpd start
[root@LAP-2 ~]# service httpd start

 

验证 httpd 连接 php

在 NFS 服务设置测试页面

[root@MN ~]# vim /LAP/index.php
<?php
phpinfo();
?>

LAMP 平台 LVS 负载均衡

测试连接 Mysql

Mysql 设置 root 允许远程连接

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

nfs 创建测试页面

[root@MN ~]# vim /LAP/index.php
<?php
 $conn=mysql_connect(‘172.16.4.136′,’root’,”);
  if ($conn)
  echo “ 连接数据库成功 ”;
  else
  echo “ 连接数据库失败 ”
?>

分别访问两台 WEB 服务器都可以正常连接 Mysql

LAMP 平台 LVS 负载均衡
LAMP 平台 LVS 负载均衡

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 共享目录

[root@MN ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip -dDiscuz
[root@MN ~]# mv Discuz/upload/* /LAP/

随便输入 LAP 中的一个 ip 地址,url 后面 +install 就可以安装了

LAMP 平台 LVS 负载均衡

解决问题:

[root@LAP1 ~]# vim /etc/php.ini
short_open_tag = ON
[root@LAP1 ~]# scp /etc/php.iniroot@172.16.4.102:/etc/php.ini

设置完成重启 web 服务器

 

又有了一个写权限问题,如下图所示

LAMP 平台 LVS 负载均衡

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-12/138748p2.htm

由于 NFS 的权限是更具用户 id 进行验证的,而 MN 的 apache 和 LAP1,LAP2 的 apache 用户 id 一致,所以直接对 apache 用户进行授权写操作。

[root@MN LAP]# setfacl -m u:apache:rwx./config.inc.php ./attachments/  ./forumd
ata/ ./forumdata/cache/ ./forumdata/templates/  ./forumdata/threadcaches/ ./foru
mdata/logs/ ./uc_client/data/cache/

如果检测都没有 x 号就可以继续了

LAMP 平台 LVS 负载均衡

设置数据库相关信息,需要正确填写数据库的地址,用户名和密码才可以安装。

LAMP 平台 LVS 负载均衡

安装完成出现的界面

LAMP 平台 LVS 负载均衡

刚才安装是在 172.16.4.101 安装完成的,在 172.16.4.102 没有进行安装,但是由于 NFS 共享的原因,在 4.101 安装完成的时候,NFS 的文件也就进行修改,所以访问 4.102 的时候,就是访问安装好的文件。

LAMP 平台 LVS 负载均衡

部署 LVS-DR
调度器设置
安装 ipvsadm

[root@LVS ~]# yum -y install ipvsadm

设置 vip 地址

[root@LVS ~]# ifconfig eth0:0 172.16.4.1 netmask255.255.255.255 up
[root@LVS ~]# 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

配置负载均衡策略

[root@LVS ~]# ipvsadm -A -t 172.16.4.1:80 -s rr
[root@LVS ~]# ipvsadm -a -t 172.16.4.1:80 -r172.16.4.101 -g -w 1
[root@LVS ~]# ipvsadm -a -t 172.16.4.1:80 -r172.16.4.102 -g -w 1
[root@LVS ~]# 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 设置

[root@LAP1 ~]# echo “1” >/proc/sys/net/ipv4/conf/lo/arp_ignore
[root@LAP1 ~]# echo “2”>/proc/sys/net/ipv4/conf/lo/arp_announce
[root@LAP1 ~]# echo “1”>/proc/sys/net/ipv4/conf/all/arp_ignore
[root@LAP1 ~]# echo “2”>/proc/sys/net/ipv4/conf/all/arp_announce
[root@LAP1 ~]# ifconfig lo:0 172.16.4.1 broadcast172.16.4.1 netmask 255.255.255.255 up
[root@LAP1 ~]# 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
[root@LAP1 ~]# route add -host 172.16.4.1 dev lo:0

LAP2 设置

[root@LAP2 ~]# echo “1”>/proc/sys/net/ipv4/conf/lo/arp_ignore
[root@LAP2 ~]# echo “2”>/proc/sys/net/ipv4/conf/lo/arp_announce
[root@LAP2 ~]# echo “1”>/proc/sys/net/ipv4/conf/all/arp_ignore
[root@LAP2 ~]# echo “2” >/proc/sys/net/ipv4/conf/all/arp_announce
[root@LAP2 ~]# ifconfig lo:0 172.16.4.1 broadcast172.16.4.1 netmask 255.255.255.255 up
[root@LAP2 ~]# 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
[root@LAP2 ~]# route add -host 172.16.4.1 dev lo:0

设置完成就可以使用 vip 地址访问 bbs 了。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/138748.htm

需求说明
搭建 LAMP 平台部署应用 discuz,要求如下:

1、为了减轻单个服务器压力,部署两台 WEB 服务器,使用 LVS-DR 模式对服务器实现负载均衡。

2、将 MySQL 服务器和 AP 进行分离,两台 AP 访问同一台 Mysql 服务器,实现数据库数据一致性。

3、AP 的网页文件都存储在 NFS 共享存储上,实现网页文件一致性。

架构缺陷:

LVS 单点,Mysql 单点,NFS 单点,交换机单点,这些设备一旦有一个出现问题,就会导致网站访问出错;当然也有很多解决方法,如 LVS 可以 lvs+keeplive 避免单点,Mysql 可以做主从同步,NFS 可以做分布式文件系统,交换机可以做冗余链路。这些会在后期博文,给出文章。

实验拓扑

LAMP 平台 LVS 负载均衡

部署 NFS
安装 NFS,系统默认自带

[root@MN ~]# 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 页面文件的地方,而且需要保证用户有写权限。

[root@MN ~]# mkdir /LAP
[root@MN ~]# vim /etc/exports
/LAP 172.16.4.101(rw) 172.16.4.102(rw)

启动 nfs,验证共享

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

客户端挂载

[root@LAP-1 ~]# mount -t nfs 172.16.4.136:/LAP /var/www/html/
[root@LAP-2 ~]# mount -t nfs 172.16.4.136:/LAP /var/www/html/

查看是否挂载

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

部署 Mysql
安装 Mysql

[root@MN ~]# yum -y install mysql-server

启动 Mysql

[root@MN ~]# service mysqld start
[root@MN ~]# 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 不许要启动

[root@LAP-2 ~]# yum -y install php php-mysql mysql  mysql-server
[root@LAP-1 ~]# yum -y install php php-mysql mysql mysql-server

设置完成启动 httpd 服务即可,其他都无需配置 LAMP 平台就搭建好了

[root@LAP-1 ~]# service httpd start
[root@LAP-2 ~]# service httpd start

 

验证 httpd 连接 php

在 NFS 服务设置测试页面

[root@MN ~]# vim /LAP/index.php
<?php
phpinfo();
?>

LAMP 平台 LVS 负载均衡

测试连接 Mysql

Mysql 设置 root 允许远程连接

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

nfs 创建测试页面

[root@MN ~]# vim /LAP/index.php
<?php
 $conn=mysql_connect(‘172.16.4.136′,’root’,”);
  if ($conn)
  echo “ 连接数据库成功 ”;
  else
  echo “ 连接数据库失败 ”
?>

分别访问两台 WEB 服务器都可以正常连接 Mysql

LAMP 平台 LVS 负载均衡
LAMP 平台 LVS 负载均衡

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 共享目录

[root@MN ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip -dDiscuz
[root@MN ~]# mv Discuz/upload/* /LAP/

随便输入 LAP 中的一个 ip 地址,url 后面 +install 就可以安装了

LAMP 平台 LVS 负载均衡

解决问题:

[root@LAP1 ~]# vim /etc/php.ini
short_open_tag = ON
[root@LAP1 ~]# scp /etc/php.iniroot@172.16.4.102:/etc/php.ini

设置完成重启 web 服务器

 

又有了一个写权限问题,如下图所示

LAMP 平台 LVS 负载均衡

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-12/138748p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6783字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中